Magnetic sensing user interface device, methods, and apparatus

ABSTRACT

User interface devices with electromagnetic dipole arrays and associated magnetic sensors, control circuits, and processing elements for determining user actuation of the device are disclosed. In one embodiment a user interface device includes an electromagnetic dipole array coupled to an actuator, along with a three-axis magnetic sensor and control and processing elements for controlling driving currents to the dipole array and sensing and processing received magnetic field signals to determine movement or displacement of the actuator.

CROSS-REFERENCE TO RELATED PATENTS AND APPLICATIONS

This application is a continuation of and claims priority to co-pendingU.S. patent application Ser. No. 13/590,099, filed Aug. 20, 2012,entitled MAGNETIC SENSING USER INTERFACE DEVICE METHODS AND APPARATUSUSING ELECTROMAGNETS AND ASSOCIATED MAGNETIC SENSORS, which claimspriority under 35 U.S.C. § 119(e) to U.S. Provisional Patent ApplicationSer. No. 61/525,755, filed Aug. 20, 2011, entitled USER INTERFACE DEVICEMETHODS AND APPARATUS USING PERMANENT MAGNETS OR ELECTROMAGNETS ANDCORRESPONDING MAGNETIC SENSORS, the content of which is herebyincorporated by reference herein in its entirety for all purposes.

FIELD

The present disclosure relates generally to user interface devices usingmagnetic sensing, and associated methods, apparatus, and systems. Moreparticularly, but not exclusively, the disclosure relates to userinterface devices using magnetic sensing and electromagnetic dipolearrays for magnetic field generation.

BACKGROUND

There are a multitude of manual user interface devices available forinteracting with computers and other electronic devices, such ascomputer mouse devices, track balls, joysticks, and the like. Many ofthese manual user interface devices use mechanical or optical componentsfor detecting movements relative to a supporting surface, such as atable, desk, or other surface. Interpretation of motion in thesemechanical and optical devices is dependent on the device components andconfiguration, and the art is replete with methods for interpretingmotion of mechanical and optical components of these user interfacedevices. However, methods for interpreting position and motion in userinterface devices using magnetic sensing components leave much room forimprovement.

SUMMARY

The present disclosure relates generally to user interface devices usingmagnetic sensing, and associated methods, apparatus, and systems. Forexample, in one aspect, the disclosure relates to a user interfacedevice. The user interface device may include, for example, an actuatorelement. The actuator element may include or be coupled to anelectromagnetic dipole array having a plurality of dipole elements forgenerating magnetic fields. The device may further include a controlcircuit for selectively energizing ones of a plurality of dipoleelements of the dipole array to generate the magnetic fields. The devicemay further include a magnetic sensor element associated with the dipolearray. The magnetic sensor element may be configured to sense themagnetic fields at a position of the actuator element and providemagnetic sensor output data corresponding to the sensed magnetic fields.

In another aspect, the disclosure relates to a method forelectromagnetic sensing in a user interface device. The method mayinclude, for example, one or more of the stages of: selectively drivinga first current in a first dipole element of a dipole array coupled toan actuator; sensing, at a multi-axis magnetic sensor, magnetic fieldsgenerated by the first dipole element; providing magnetic sensor outputdata corresponding to the first sensed magnetic fields; selectivelydriving a second current in a second dipole element of the dipole array;sensing, at the multi-axis magnetic sensor, magnetic fields generated bythe second dipole element; providing magnetic sensor output datacorresponding to the second sensed magnetic fields; receiving themagnetic sensor output data at a processing element; and determining,based at least in part on the magnetic sensor output data, a location orposition of the actuator.

In another aspect, the disclosure relates to computer-readable media forstoring instructions for implementing, in whole or in part, theabove-described method or other related methods on a processing elementor other electronic circuit element, which may be a component of amagnetic user interface device. In another aspect, the disclosurerelates to apparatus and devices for implementing the above-describedmethod or other related methods, in whole or in part, as well as systemsfor using the above-described method or related methods in whole or inpart. In another aspect, the disclosure relates to means for performingthe above-described method or related methods, in whole or in part.

Various additional aspects, details, features, and functions of variousembodiments are further described herein in conjunction with theappended drawing figures.

BRIEF DESCRIPTION OF THE DRAWINGS

The present application may be more fully appreciated in connection withthe following detailed description taken in conjunction with theaccompanying drawings, wherein:

FIG. 1 is an isometric view of details of an embodiment of an examplemagnetic user interface device (UID) with a clover leaf shaped printedcircuit board;

FIG. 2 is an enlarged vertical sectional view of the magnetic UIDembodiment of FIG. 1 taken along line 2-2 of FIG. 1;

FIG. 3 is a slightly reduced exploded isometric view of the magnetic UIDembodiment of FIG. 1 taken from above;

FIG. 4 is an exploded view of the embodiment of FIG. 3 taken from below;

FIG. 5 is an enlarged bottom plan view of a scalloped-edge manualactuator of the magnetic UID embodiment of FIG. 1;

FIG. 6 is an isometric view of details of an alternate embodiment of amagnetic UID similar to the embodiment of FIGS. 1-4 with added switchbumps;

FIG. 7 is a reduced isometric view of a user's hand squeezing a switchbump on the magnetic UID embodiment of FIG. 6;

FIG. 8 is a block diagram illustrating details of an embodiment ofcircuitry for operatively coupling the magnetic UID embodiments of FIG.1 or 6 to a computer or other electronic computing device;

FIG. 9 is an illustration of an example magnetic sensor and magnetconfiguration and associated magnetic field components;

FIG. 10 illustrates details of an embodiment of part of a radialdisplacement lookup table for use in a magnetic UID;

FIG. 11 illustrates partial details of an embodiment of part of a Z-axisdisplacement lookup table for use in a magnetic UID;

FIG. 12 illustrates details of an embodiment of a process fordetermining the position of a magnet in relation to a correspondingmagnetic sensor using lookup tables in a magnetic UID;

FIG. 13 illustrates details of an embodiment of a process fordetermining the position of a magnet in relation to a correspondingmagnetic sensor using an indexed list in a magnetic UID;

FIG. 14 illustrates details of an embodiment of a process fordetermining the position of a magnet in relation to a correspondingmagnetic sensor using interpolation in a magnetic UID;

FIG. 15 illustrates details of an embodiment of a process forinterpreting the state of displacements of magnets in a magnetic UID;

FIGS. 16A and 16B illustrate details of an embodiment of a process forinterpreting the state of displacements of magnets in a magnetic UID;

FIGS. 17A and 17B illustrate details of an embodiment of a process forinterpreting the state of displacements of magnets in a magnetic UID;

FIG. 18 illustrates details of an embodiment of a process interpretingdisplacements of an actuator using combined displacements of magnets ina magnetic UID;

FIG. 19 illustrates details of an embodiment of circuitry for coupling amagnetic UID to an electronic computing system;

FIG. 20 is an illustration of details of an embodiment of part of aradial position lookup table for use in a magnetic UID;

FIG. 21 is an illustration of details of an embodiment of part of aZ-axis position lookup table for use in a magnetic UID;

FIG. 22 is a diagram illustrating one possible magnet position, in areleased state, of an embodiment of a magnetic UID that utilizes amagnetically sensed squeeze mechanism;

FIG. 23 is a diagram illustrating one possible magnet position, in adisplaced state due to a squeeze-type deformation, of an embodiment of amagnetic UID manual user interface device that utilizes a magneticallysensed squeeze mechanism;

FIG. 24 illustrates details of an embodiment of a magnetic UID deviceusing small magnets and compass sensors;

FIG. 25 is a block diagram illustrating details of an embodiment of aprocess for using magnetic field measurements generated from compasssensors to determine small magnet positions in a magnetic UID;

FIG. 26 illustrates details of an embodiment of a system including anelectronic computing device coupled to a magnetic UID with associatedcompass devices for providing additional position information;

FIG. 27 illustrates details of an embodiment of a process fordetermining positional information of an actuator element and/or magnetsin a magnetic UID;

FIG. 28 illustrates details of an embodiment of a process fordetermining magnetic field model information for use with a processingelement of a magnetic UID;

FIGS. 29A-29C illustrate details of an embodiment of an electromagnetdipole array with X and Y axis dipoles and examples of configurationsfor use of such an array in a magnetic UID;

FIGS. 30A and 30B illustrate details of another embodiment of anelectromagnet dipole array with X and Y axis dipoles for use in amagnetic UID;

FIGS. 31A and 31B illustrate details of another embodiment of anelectromagnet dipole array with X and Y axis dipoles for use in amagnetic UID;

FIGS. 32-35 illustrate details of other embodiments of electromagnetdipole arrays with X, Y, and Z-axis dipoles for use in a magnetic UID;

FIGS. 36A and 36B illustrate details of other embodiments ofelectromagnet dipole arrays with three dipole array elements disposed ina pyramid stack configuration on a printed circuit board (PCB);

FIGS. 37A and 37B illustrate simplified details of an example mechanicalactuation of an embodiment of an electromagnetic dipole array in a UID;

FIG. 38 illustrates details of another configuration of a UID includingtwo electromagnet dipole arrays in a UID;

FIG. 39 illustrates details of magnetic field shaping as may beimplemented using multiple dipole elements of a magnetic dipole array;and

FIG. 40 illustrates example details of one switching scenario embodimentusing a pair of electromagnetic dipole elements of an electromagneticdipole array in a UID.

DETAILED DESCRIPTION OF EMBODIMENTS Overview

This disclosure relates generally to user interface devices usingmagnets and magnetic sensing, along with associated methods, apparatus,and systems. More particularly, but not exclusively, the disclosurerelates to magnetically sensed user interface devices (“UIDs”) usingelectromagnets and associated magnetic sensing elements. In addition,the disclosure relates to methods and apparatus for generating and usingmagnetic field models within UIDs that use magnetic sensing elements(also denoted herein as “magnetic UIDs” for brevity), such as permanentor electromagnets and associated magnetic sensors, to sense positions,motions, deformations, and/or other user interactions with the userinterface devices

A typical magnetic UID may include an actuator element having one ormore permanent magnets or a magnetic dipole array (and associatedcontrol and driving circuits), along with corresponding magneticsensors, which may be multi-axis magnetic sensors, configured to sensethe position and/or movements of the magnets and associated actuator.The sensed information may then be processed in a processing element togenerate information related to motion, position, deformation, or otheractions of the actuator element, which may then be provided to attachedcomputers or other electronic computing devices or systems to facilitateuser interaction with the computers or other electronic computingdevices or systems. In implementations where electromagnets are used, acontrol circuit, which may be coupled to or incorporated with aprocessing element, may generate and control driving currents to beapplied to dipole elements of the electromagnetic dipole array.

Subject matter described in various additional applications is relatedto this disclosure and may be combined with the various apparatus,devices, and methods described herein in various embodiments. Forexample, this disclosure is related to U.S. patent application Ser. No.13/110,910, filed on May 18, 2011, entitled USER INTERFACE DEVICES,APPARATUS, AND METHODS, to U.S. Patent Application Ser. No. 61/363,173,filed Jul. 9, 2010, entitled SPRING SUSPENDED MAGNETICALLY SENSED USERINTERFACE DEVICES, to U.S. Provisional Patent Application Ser. No.61/372,025, filed Aug. 9, 2010, entitled SPRING SUSPENDED MAGNETICALLYSENSED USER INTERFACE DEVICE, to U.S. patent application Ser. No.13/214,209, filed on Aug. 21, 2011, entitled MAGNETIC SENSED USERINTERFACE DEVICE, METHODS AND APPARATUS, to U.S. patent application Ser.No. 13/272,172, filed Oct. 12, 2011, entitled MAGNETIC THUMBSTICK USERINTERFACE DEVICES, to U.S. patent application Ser. No. 13/292,038, filedNov. 8, 2010, entitled SLIM PROFILE MAGNETIC USER INTERFACE DEVICES, toU.S. patent application Ser. No. 13/310,670, filed Dec. 2, 2011,entitled MAGNETICALLY SENSED USER INTERFACE APPARATUS AND DEVICE, and toU.S. Provisional Patent Application Ser. No. 61/424,496, filed Dec. 17,2010, entitled KNOB-ACTUATOR USER INTERFACE DEVICE WITH MAGNETICSENSORS. The content of each of these applications is herebyincorporated by reference herein in its entirety for all purposes. Theseapplications may be denoted collectively herein as the “RelatedApplications.”

As noted previously, this disclosure relates generally to user interfacedevices using magnetic sensing. For example, in one aspect, thedisclosure relates to a user interface device. The user interface devicemay include, for example, an actuator element. The actuator element mayinclude or be coupled to an electromagnetic dipole array having aplurality of dipole elements for generating magnetic fields. The devicemay further include a control circuit for selectively energizing ones ofa plurality of dipole elements of the dipole array to generate themagnetic fields. The device may further include a magnetic sensorelement associated with the dipole array. The magnetic sensor elementmay be configured to sense the magnetic fields at a position of theactuator element and provide magnetic sensor output data correspondingto the sensed magnetic fields.

The electromagnetic dipole array may be, for example, a cross-shapedarray having a pair of dipole elements on prongs of the array. The twoprongs may be orthogonal or, in some embodiments, may not be orthogonal.The dipole array may include a ferrite cross-shaped substrate withwindings on each of the orthogonal prongs. The electromagnetic dipolearray may be a three-dimensional array having three dipole elements onthree prongs of the array. The three prongs may be orthogonal or, insome embodiments, may not be orthogonal. The three prong dipole mayinclude a ferrite cross-shaped substrate with windings on each of theorthogonal prongs. The dipole array may include three chip-scaleinductors disposed in a pyramid configuration on a substrate, such as aprinted circuit board (PCB) or other substrate.

The control circuit may be, for example, an electronic circuit forselectively providing currents to ones of a plurality of elements of thedipole array to generate the magnetic fields. The electronic circuit maybe included, in whole or in part, in a processing element of a userinterface device. The electronic circuit may include digital switchingcomponents, such as transistors or other switching components, alongwith associated analog and digital circuit components andcontrol/processing components. The switching may be implemented bysoftware running on a processing element or other processing device orcomponent. The switching may be done in conjunction with sensingperformed at the magnetic sensor element. The currents may besequentially applied to ones of the plurality of elements of the dipolearray by the electronic circuit. An ambient magnetic field condition maybe sensed by the magnetic sensor and stored in a memory of the userinterface device. An adjustment to the driving currents may be generatedby the processing element based on the sensed magnetic field. Thedriving currents may be sequentially applied to the dipole elements tooffset or cancel a sensed ambient magnetic field condition.

The magnetic sensor element may be, for example, a three-dimensionalmagnetic field sensor. The magnetic sensor element may be a compasssensor or magnetometer device, or other magnetic sensor.

The position of the actuator may be in a rest or neutral position. Afirst magnetic field measurement may be made in the rest or neutralposition. The position of the actuator may subsequently be an actuatedposition offset from a rest or neutral position. A second or subsequentmagnetic field measurement may be made at the actuated position orsubsequent actuated or rest positions.

The device may further include, for example, a memory. The device mayfurther include a processing element coupled to the memory. Theprocessing element may be configured to perform or initiate one or moreof the stages of: receiving the magnetic sensor output data; generatingan estimated position or deformation of the actuator based at least inpart on the received output data; and generating, based on the estimatedposition or deformation of the actuator element, an output signal usableby an electronic computing system coupled to the user interface device.

The device may further include, for example, a substrate. The substratemay be a printed circuit board or other substrate. The magnetic sensormay be disposed on the substrate. The control circuit may be disposed onthe substrate. The device may further include a plurality of springs.The springs may be mechanically coupled between the actuator and thesubstrate to float the electromagnetic dipole array relative to themagnetic sensor. The springs may be electrical conductors for drivingcurrent and/or control, data, or other signals from the control circuitto the electromagnetic dipole array.

In another aspect, the disclosure relates to a method forelectromagnetic sensing in a user interface device. The method mayinclude, for example, one or more of the stages of:

selectively driving a first current in a first dipole element of adipole array coupled to an actuator; sensing, at a multi-axis magneticsensor, magnetic fields generated by the first dipole element; providingmagnetic sensor output data corresponding to the first sensed magneticfields; selectively driving a second current in a second dipole elementof the dipole array; sensing, at the multi-axis magnetic sensor,magnetic fields generated by the second dipole element; providingmagnetic sensor output data corresponding to the second sensed magneticfields; receiving the magnetic sensor output data at a processingelement; and determining, based at least in part on the magnetic sensoroutput data, a location or position of the actuator.

The first dipole element and the second dipole element may, for example,be disposed on orthogonal prongs of the dipole array in across-configuration. The first and/or second driving currents may beadjusted to compensate for a sensed ambient magnetic field condition.The magnetic sensor may be a three-axis magnetic sensor and the magneticsensor output data corresponds to three-dimensional magnetic field data.The dipole array may comprise two dipole elements. The dipole array maycomprise three or more dipole elements. The dipole array elements may beorthogonal or, in some embodiments, may not be orthogonal.

In another aspect, the disclosure relates to a method for processingsignals in a user interface device, where the user interface deviceincludes an actuator element having one or more magnets and one or moremagnetic sensor elements configured to sense a position or deformationof the actuator element. The method may include, for example, receiving,during a movement or deformation of the actuator element from thereleased state, sensor data from the one or more magnetic sensorelements in a plurality of axes of measurement. The method may furtherinclude comparing the sensor data from the one or more magnetic sensorelements to a predefined magnetic field model to determine an estimatedposition or deformation of the actuator element from the referencestate. The method may further include generating, based on the estimatedposition or deformation of the actuator element from the referencestate, an output signal usable by an electronic device coupled to theuser interface device. The predefined magnetic field model may beconfigured to relate positional information of the one or more magnetswith corresponding sensor information associated with the one or moremagnetic sensor elements.

The stage of comparing the sensor data from the one or more magneticsensor elements to a predefined magnetic field model may include, forexample, comparing the sensor data to values in one or more lookuptables to determine the estimated position or deformation. Comparing thesensor data may further include converting x and y dimension sensormeasurements to an r-dimension measurement and determining the estimatedposition by accessing a lookup table including B_(r) and z-dimensionvalues. Alternately, or in addition, comparing the sensor data from theone or more magnetic sensor elements to a predefined magnetic fieldmodel may include solving, based on the sensor data, a closed formequation of the predefined magnetic field model to determine theestimated position or deformation. The plurality of orthogonal axes ofmeasurement may be three orthogonal axes of measurement.

The one or more magnets may be permanent magnets. Alternately, or inaddition, the one or more magnets may be electromagnets, such aselectromagnets configured in a magnetic dipole array. The actuatorelement may include one or more movable elements. Alternately, or inaddition, the actuator element may include one or more deformableelements.

The output signal may include, for example, data defining the estimatedposition of the actuator element and/or of magnets in or associated withthe actuator element. The output signal may include data defining amotion of the actuator element. The output signal may include datadefining the deformation of the actuator element. The predefinedmagnetic field model may include one or more lookup tables relating thepositional information to the sensor information. The predefinedmagnetic field model may include a mathematic model, which may be aclosed form solution model, relating the position information to thesensor information. The reference position may be a released stateposition or may be another position related to or associated with thereleased state position, such as a position offset from the releasedstate position.

The reference position may be offset from a released state position, andthe method may further include, for example, determining the offset fromthe released position and adjusting the estimated position based on thedetermined offset. The offset may be a function of temperature and/orother physical or operational parameters, and the estimated position maybe adjusted responsive to a temperature measurement or measurement ordetermination of the other physical or operational parameters.

The method may further include, for example, compensating for unintendeddisplacement of the manual actuator below a predetermined minimumthreshold. The method may further include compensation for position ofthe magnetic user interface device using one or more compass devices.Position of the magnetic user interface device may be compensated byusing a first compass on the magnetic user interface device and a secondcompass on a display or monitor of a coupled electronic computingsystem.

The determining of the offset from the released position may include,for example, generating a center calibration prism including apredetermined set of boundaries of the magnetic field componentsdetected by each sensor, and repeatedly redefining the centercalibration prism so as to auto-zero the released state position.

In another aspect, the disclosure relates to a magnetic user interfacedevice. The magnetic user interface device may include, for example, anactuator element including one or more magnets, one or more magneticsensor elements associated with the one or more magnets, where the oneor more magnetic sensor elements may be configured to sense a positionor deformation of the actuator element and/or the magnets associatedwith the actuator element. The magnetic user interface device mayfurther include a memory configured to store a predefined magnetic fieldmodel. The magnetic user interface device may further include aprocessing element coupled to the memory. The processing element may beconfigured to receive, during a movement or deformation of the actuatorelement from the released state, sensor data from the one or moremagnetic sensor elements in a plurality of axes of measurement, comparethe sensor data from the one or more magnetic sensor elements to thepredefined magnetic field model to determine an estimated position ordeformation of the actuator element from the reference state, andgenerate, based on the estimated position or deformation of the actuatorelement from the reference state, an output signal usable by anelectronic device coupled to the user interface device. The predefinedmagnetic field model may be configured to relate positional informationof the one or more magnets with corresponding sensor informationassociated with the one or more magnetic sensor elements.

The one or more magnets may include permanent magnets. Alternately, orin addition, the one or more magnets may include cross-shapedelectromagnets or other electromagnet dipole array elements. The one ormore magnetic sensor elements may include high sensitivity magneticsensor elements, such as compass sensors or magnetometers.

In another aspect, the disclosure relates to a user interface device.The user interface device may include, for example, actuator meansincluding one or more magnets, magnetic sensor means configured to sensea position or deformation of the actuator means, and memory meansconfigured to store a predefined magnetic field model. The userinterface device may further include processor means coupled to thememory means configured to receive, during a movement or deformation ofthe actuator element from the released state, sensor data from the oneor more magnetic sensor elements in a plurality of axes of measurement,compare the sensor data from the one or more magnetic sensor elements tothe predefined magnetic field model to determine an estimated positionor deformation of the actuator element from the reference state, andgenerate, based on the estimated position or deformation of the actuatorelement from the reference state, an output signal usable by anelectronic device coupled to the user interface device. The predefinedmagnetic field model may be configured to relate positional informationof the one or more magnets with corresponding sensor informationassociated with the one or more magnetic sensor elements.

In another aspect, the disclosure relates to a computer-readable mediumcontaining instructions stored on a non-transitory medium for causing aprocessor in a magnetic user interface device, wherein the magnetic userinterface device includes one or more actuator elements and one or moremagnetic sensor elements configured to sense motion or deformation ofthe actuator elements, to perform a signal processing method. The signalprocessing method may include receiving, during a movement ordeformation of the actuator element from the released state, sensor datafrom the one or more magnetic sensor elements in a plurality of axes ofmeasurement, comparing the sensor data from the one or more magneticsensor elements to a predefined magnetic field model to determine anestimated position or deformation of the actuator element from thereference state, and generating, based on the estimated position ordeformation of the actuator element from the reference state, an outputsignal usable by an electronic device coupled to the user interfacedevice. The predefined magnetic field model may relate positionalinformation of the one or more magnets with corresponding sensorinformation associated with the one or more magnetic sensor elements.

In another aspect, the disclosure relates to a method for generating afield model for use in a user interface device including one or moreactuator elements and one or more magnetic sensor elements configured tosense motion or deformation of the actuator elements. The method mayinclude, for example, orienting the user interface device in ones of aplurality of positions and determining and storing positionalinformation corresponding to the ones of a plurality of positions,receiving and storing ones of a plurality of sensor data valuescorresponding to the ones of a plurality of positions, and associatingthe positional information with the sensor data values to generate thefield model. The positional information and sensor data values may beassociated in the form of a lookup table. Alternately, or in addition,the positional information and sensor data values may be associated inthe form of a closed-form equation. In another aspect, the disclosurerelates to a method of processing signals from a manual user interfacedevice having a manual actuator that can be manually moved from areleased state and returned to its released state as a result ofrestorative forces, the movement of the manual actuator causing relativemovement between a plurality of magnets and a plurality of correspondingsensors that each generate signals representing three independentmagnetic field components detected within each sensor. The method mayinclude, for example, generating a field model for each sensor in whichthe signals from each sensor correspond to a predetermined set ofposition data, comparing the position data for each of the sensors todetermine a displacement of the manual actuator from the released state,and generating signals for transmission to an electronic computingsystem representing the displacement of the manual actuator, the signalsbeing generated in a predetermined format that can be interpreted by theelectronic computing system.

In another aspect, the disclosure relates to a method of processingsignals from a manual user interface device having a manual actuatorthat can be manually moved from a released state and returned to itsreleased state as a result of restorative forces, the movement of themanual actuator causing relative movement between a plurality of magnetsand a plurality of corresponding sensors that each generate signalsrepresenting three independent magnetic field components detected withineach sensor. The method may include, for example, generating a centercalibration prism including a predetermined set of boundaries of themagnetic field components detected by each sensor, and repeatedlyre-defining the center calibration prism to auto-zero the released stateposition.

Various additional aspects, details, features, functions, apparatus,systems, processes, and methods are further described and illustratedbelow in conjunction with the appended drawing figures.

Example magnetic user devices on which embodiments may be implementedmay include, for example, user interface devices, such as are describedin the Related Applications, that include a movable and/or deformablemanual actuator element for facilitating user interaction, through thedevice, with other elements, components, devices, and/or systems, suchas computers or other electronic computing devices or systems. Anelement of the user interface device may be configured to providerestorative forces in response to user manipulation of the device. Forexample, the manual actuator may exhibit resistance to manipulation andmay return to a neutral position with the use of springs, flexiblemembranes, or other mechanical elements.

Magnetic UIDs use one or more magnets and one or more magnetic sensors.The magnets may be permanent magnets configured such that each of thepermanent magnets may be paired to a magnetic sensing element orelements. The sensing element or elements may be configured to measuremagnetic field components, which may be measured in one or more axes(e.g., three-axes of motion in a typical embodiment).

In some embodiments, electromagnets may be used in place of or inadditional to permanent magnets. Electromagnets may be formed in anelectromagnetic dipole array, such as in a cross-shaped configuration toinclude two or three orthogonal dipoles. In some embodiments, a singlecross-configured electromagnet and a single three-axis high sensitivitymagnetic sensor may be used to provide a highly compact magnetic UIDwhich may reduce component count, size, and/or complexity from magneticUIDs using permanent magnets. The two (or more) dipoles may beselectively switched to generate a magnetic field for sensing in anelectromagnet embodiment. The dipole elements of the electromagneticembodiment may also be selectively driven to generate a shaped orcompensated magnetic field to account for ambient magnetic fieldelements or other offsets or distortion.

A magnetic field model associated with the magnetic UID may begenerated, and information related to the magnetic field model may bestored in the magnetic UID, such as in a memory or other data storagemechanism. The magnetic field model may comprise a closed-formmathematic model, such as in the form of one or more equations thatrepresent relationships between sensor measurements and positions and/ordeformations of the actuator(s) and/or associated magnets. Alternately,or in addition, the magnetic field model comprises a set of data, suchas data configured in a lookup table (LUT) or other data structure torepresent the relationships between sensor information and position ordeformation information.

The magnetic UID may have information received from the magnetic sensorsin conjunction with the magnetic field model to convert magnetic fieldmeasurements (such as during user movement or deformation of theactuator elements(s)) into position, motion, and/or deformationinformation and data corresponding with the magnets and/or actuator(s).

The magnets may be permanent magnets such as ferromagnets or other typesof permanent magnets. The magnets may be positioned so that the northpole and south pole of each type of magnet are pointed or oriented inthe same direction or are oriented in different directions. The sensingelement or elements may be a magnetic sensor or sensors, for example,Hall-Effect sensors. In some embodiments, very sensitive sensors may beused that, for instance, measure Lorentz force, such as, for example,magnetometers or compass sensors, such as the BLBC3-B CMOS 3D Compasssensor from Baolab Microsystems or other compass or high sensitivitymagnetic sensors.

In some embodiments, interpolation, offset compensation, and/or otherprocessing or adjustment may be used to further refine the positionaldata of the magnet and associated actuator(s).

Terminology

As used herein the term “permanent magnet” refers to any object that ismagnetized and creates its own persistent magnetic field. Suitableferromagnetic materials for a permanent magnet include iron, nickel,cobalt, rare earth metals and their alloys, e.g. Alnico and Neodymium.Permanent magnets can also be made of powderized ferromagnetic materialheld together with an organic binder or by other materials known ordeveloped in the art.

The term “electromagnet” refers to an element that generates a magneticfield when energized with a driving current. Electromagnets may beimplemented as dipoles which may be arranged in an array configurationin an electromagnetic dipole array comprising two or more dipoles.

The term “released state” as used herein describes a state in which nooperator-initiated forces are acting upon a magnetically-sensed manualactuator besides those which are inherently an aspect of the structureof the device itself, such as gravity. Furthermore, the term “referencepoint” as used herein describes the measurement in terms of magneticfield components made while the manual actuator of a manual userinterface device is in the released state or in a state related to thereleased state by a compensation factor.

The term “magnet center position” as used herein refers to measurementsof the position of the center of the magnet, such as the center of apermanent magnet or central position of an electromagnet such as across-shaped two dipole electromagnet, in relation to its correspondingmagnetic sensor in terms of physical distance.

The term “electronic computing system” as used herein refers to anysystem that may be controlled by or otherwise interface with a manualuser interface device. Examples of an electronic computing systeminclude but are not limited to: personal computers (PCs), video gameconsole systems, robotic arms, test or measurement equipment, imagingequipment, graphical art systems, as well as computer aided designsystems.

The term “processing element” as used herein refers to a component whichreceives signals or data from sensors and is capable of processing thedata to generate output signals. In a typical magnetic UIDimplementation, a processing element receives signals or datarepresenting information from multiple magnetic sensors, processes theinformation to determine position, motion, deformation, and/or otherinformation related to user interaction with the magnetic UID, and thengenerates output signals in a compatible format for transfer to theelectronic computing system, with the output signal then transferred tothe electronic computing system. In some embodiments the processingelement may be integral with the electronic computing system, whereas inother embodiments the processing element may be within a separate deviceor apparatus. A processing element may include one or more processors,such as microcontrollers, microprocessors, digital signal processors(DSPs), field programmable gate arrays (FPGAs), application specificintegrated circuits (ASICs), or other programmable devices, as well asone or more memories, one or more peripheral devices, such asanalog-to-digital (A/D) converters, serial or parallel digitalinput/output devices, or other peripheral components or devices. Aprocessing element may include a memory or other circuit for storinginstructions for execution on the processor, or may be coupled to anexternal memory or other device to retrieve instructions for execution.

The terms “displace” and “displacement,” when used herein in referenceto the manual actuator and the magnets, shall mean various manualmovements thereof, including, but not limited to, lateral movementsalong the X and Y axes, vertical movements along the Z axis, tilting,rotation, and permutations and combinations thereof. The same definitionapplies to movement of the magnetic sensors in the converse arrangementwhere the magnetic sensors are coupled to the manual actuator and moveadjacent to stationary corresponding magnets.

The terms “magnetically sensed user interface device,” “manual userinterface device,” and “magnetic user interface device (magnetic UID)”refer to any user interface device that utilizes, among otherspecialized components, a magnet or magnets that correspond to and movewith respect to a magnetic sensor or magnetic sensors. The magnet(s) ormagnetic sensor(s) are typically mounted onto some form of a manualactuator in a known or predefined arrangement.

A manual actuator on a magnetic UID is typically pivotably mounted by arestorative element such as a spring or springs so that the manualactuator and attached magnet(s) are free to move through a limited rangeabout the magnetic sensor(s). Instead of a spring, magnetic UIDs may useadjacent permanent magnets oriented with opposite polarities to providethe restorative force necessary to return the manual actuator to areleased state.

Each of the magnetic sensors may be closely paired with ones of themagnets. In magnetic UIDs with more than one of the magnets and one ofthe magnetic sensors, the magnetic sensors may be placed far enoughapart so that the magnetic field of the magnets associated with otherones of the magnetic sensors do not strongly influence the measuredmagnetic fields at each of the magnetic sensors, or any influence may becompensated for. Each magnetic sensor may preferably measure threeindependent magnetic field components approximately at a single compactpoint in space within the sensor package. When the position of amagnetic sensor is referenced herein, the referenced sensor positionrefers to a point within the sensor package where the magnetic fieldsare measured.

As used herein, the term, “exemplary” means “serving as an example,instance, or illustration.” Any aspect, detail, function, element,module, implementation, and/or embodiment described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other aspects and/or embodiments.

Example Embodiments

Examples of various configurations of magnetic UIDs and associatedelements may be found in the Related Applications, including, forexample, U.S. patent application Ser. No. 12/756,068, entitled MAGNETICMANUAL USER INTERFACE DEVICE, and U.S. patent application Ser. No.13/110,910, filed on May 18, 2011, entitled USER INTERFACE DEVICES,APPARATUS, AND METHODS, the entire disclosures of which are herebyincorporated by reference. Some example embodiments of such userinterface devices are described subsequently with respect to FIGS. 1-7.

For example, FIGS. 1-5 illustrate details of an embodiment 50 of amagnetic UID that includes an upper substantially inverted dome shapedscalloped-edge manual actuator 51 and a lower base 52. Thescalloped-edge actuator 51 may be encased by an over-molded elastomericcovering 53. Internally and along the bottom surface of actuator 51 aseries of four top spring captures 51 a (best seen in FIG. 5) and aseries of four magnet mounts 51 b may be formed. The magnet mounts 51 bmay be used to secure a set of four cylindrical magnets 54 to actuator51. Each of the cylindrical magnets 54 may be oriented with its Southpole facing towards the bottom of actuator 51 and its North pole facingtowards a corresponding one of four sensors 55, which may be, forexample, a Melexis MLX90333 Triaxis 3D-Joystick Position sensor or aMelexis MLX90363 sensor. In some embodiments, magnetic sensors withincreased sensitivity may be used that, for instance, measure Lorentzforce. In such embodiments one sensor may be used to measure andsubtract off any local, background magnetic fields, such as the earth'smagnetic field, to compensate for such fields and improve sensingaccuracy and device performance.

Top spring captures 51 a may be formed to aid in holding a set of foursprings 56 in place during displacements of actuator 51. The center ofthe top of the actuator 51 may be concave, curving downward in thedirection toward the base 52. About the center of the bottom of actuator51, a center keying feature 51 c (best illustrated in FIG. 5) may beformed. Actuator 51 may be mounted to a center limiting component 57using a screw 58 and/or other attachment mechanisms. The top of centerlimiting component 57 may be formed with a limiting component keyingfeature 57 a which may fit or engage with a complementary center keyingfeature 51 c to aid in securing the center limiting component 57 tomanual actuator 51. The center limiting component 57 may be configuredso that it forms a cylindrical post on its top end, above the limitingcomponent keying feature 57 a. The bottom section of the center limitingcomponent 57 may flatten to a larger diameter than that of itscylindrical post top.

Evenly spaced in four places about the circumference of the flattenedsection of larger diameter, a series of curved projections may be formedin the center limiting component 57. A downward facing dome may beshaped about the bottom center of the flattened section of the centerlimiting component 57 in order to make contact with a mechanical domeswitch 59 during certain downward displacements of actuator 51. Amechanical dome switch 59 (as shown in FIG. 2) may be mounted to the topcenter of a circuit board, such as clover leaf shaped printed circuitboard 60. Each of the four sensors 55 may be mounted on a correspondingone of the four leaves of printed circuit board 60. Printed circuitboard 60 may be mounted to the underside of a bottom spring mountingpiece 61 using screws 58 or other attachment mechanisms.

An electrical connector 62 may be mounted on the bottom of printedcircuit board 60. In between each leaf of printed circuit board 60, thebottom of each of the springs 56 may be mounted to the bottom of thepartial cylindrical recesses formed by the bottom spring mounting piece61. A set of bottom spring captures 61 a (as shown in FIG. 3 and FIG. 4)may be formed about the bottom of each of the partial cylindricalrecesses to aid in holding the springs 56 in place in relation to thebottom spring mounting piece 61. The partial cylindrical recesses mayhave a greater diameter than that of the springs 56 so as to allow rangeof motion of the springs 56 and actuator 51. A hole may be formed in thecenter of the bottom spring mount piece 61. The hole may be larger indiameter than the cylindrical post top section of the center limitingcomponent 57 but may be smaller in diameter than its flattened section.

When the magnetic UID embodiment 50 is assembled, the cylindrical postsection of the center limiting component 57 may be fitted through thehole of the bottom spring mounting piece 61 so that the flattenedsection of the center limiting component 57, which may have a largerdiameter than the hole of the bottom spring mounting piece 61, ispositioned along the bottom of the bottom spring mounting piece 61.Manual actuator 51 may thereby be secured to the bottom spring mountingpiece 61, limiting travel and over extension of the springs 56. Thepositioning of the center limiting component 57 through the bottomspring mounting piece 61 creates a mechanism for restricting the rangeof motion of the actuator 51, thereby preventing over-stressing of thesprings 56. The bottom spring mounting piece 61 may be mounted to thetop of the bottom base 52 using a screw 58 and/or other attachmentmechanisms.

Referring to FIG. 5, top spring captures 51 a may be evenly spaced aboutthe internal circumference of manual actuator 51. Between each of thetop spring captures 51 a one of each of the magnet mounts 51 b may bedisposed. By positioning the cylindrical magnets 54 (as illustrated inFIGS. 2-4) as far along the internal circumference as possible, thedistance between one of the cylindrical magnets 54 and the other ones ofthe cylindrical magnets 54 may be maximized within the actuator 51,which may thereby reduce interference. For example, if the distancebetween each of the cylindrical magnets 54 is maximized to the extentpossible within a particular actuator shape, each magnetic fieldgenerated by the cylindrical magnets 54 may be correspondingly minimallyinfluenced by the magnetic field of the other cylindrical magnets 54. Inan exemplary embodiment, springs 56 may be positioned as far towards theinternal circumference of actuator 51 as is practical.

FIGS. 6 and 7 illustrate details of an alternate embodiment 63 of amagnetic UID, which is similar to embodiment 50 of FIGS. 1-5 except thatembodiment 63 further includes an elastomeric covering 64 formed withfour switch bumps 64 a. In magnetic UID embodiment 63, each of theswitch bumps 64 a may be formed in the general shape of a dome andpositioned along the vertical surface of the elastomeric covering 64 toallow user interaction with corresponding switches, which may be used togenerate signals to be provided to a coupled computer or otherelectronic computing system. The switch bumps 64 a may also bepositioned evenly about the circumference defined by the verticalsurface of the elastomeric covering 64.

The switch bumps 64 a may be mechanically associated with acorresponding switch (not illustrated) that may be mounted to actuator51, such as underneath the elastomeric covering 64. Suitable switchesinclude, but are not limited to, electro-mechanical switches, as well aspressure sensitive variable resistance, capacitance, or inductanceswitching devices. In addition, optical interruption or variableintensity devices including interrupted or frustrated total internalreflection may be used as switches in some embodiments. Flexible wiring(not illustrated), a flex circuit (not illustrated), and/or springs 56are example components that may be used to provide electricalconnections from the switches to an associated PCB, such as to theclover leaf shaped printed circuit board 60.

The switch bumps 64 a, when manually depressed, may be configured toafford the user a plurality of push button controls. A set of lines 65in FIG. 6 illustrate the direction that radial inward force may beapplied to the switch bumps 64 a to activate the push button control. Auser's hand 66 (as shown in FIG. 7) can grasp and squeeze the top of themanual user interface device 63, and the thumb and fingers of the user'shand 66 can individually activate the switch bumps 64 a, with theactivation then processed to initiate commands in an output signal to beprovided to the electronic computing system. For example, squeeze orother deformation actions may be applied to the actuator, either aloneor in combination with the switches, to signal user interactions withthe electronic computing system. In a computer aided design (CAD)system, for example, a squeeze and/or switch actuation may beinterpreted as picking up of a virtual object on a display screen of theelectronic computing system.

In other applications, a squeeze of the manual user interface device 63may be used to indicate a particular action in a video gaming system orfor selecting text or other elements in a document interface, eitheralone or in combination with the switches. For example, the switch bumps64 a may serve the function of right and left mouse clicks of a cursorcontrol device. Various other positions and arrangements of the switchbumps 64 a and switches are possible to optimize ergonomics orparticular use of the manual user interface device 63.

Though the above-described types of switching are represented in theembodiment 63, similar switching device configurations may also beadapted for use in the various other embodiments of magnetic UIDs.Although embodiment 50 and embodiment 63 illustrate two configurationsof magnetic UIDs that may advantageously be used with the variousprocesses as described herein, other configurations of manual userinterface devices may include a variety of quantities, shapes, and/orarrangements of magnets and/or associated sensors to provide additionalsensing functions. In addition, it is noted that various other types ofmagnetic sensors in addition to the described Melexis MLX90333 sensor(that specifically measures the Hall effect) may also be used such as,but not limited to, GMR sensors and InSb magnetoresistors.

Multi-axis magnetic sensors, such as Hall effect sensors 55 of FIGS.2-4, sense multiple magnetic field components (typically in three axes)and generate corresponding sensor data. The sensor data may then beprovided to a processing element, comprising a microprocessor,microcontroller, DSP, ASIC, or other programmable processing device orcomponent. Because the magnetic field components are measurements ofmagnetism rather than positions in space, the processing element must beconfigured to interpret the magnetic field components as a position ofeach magnet relative to its corresponding magnetic sensor. Theinterpreted position may be relative to a reference position, such as areleased state position or other position (e.g., a reference position atan offset from the released state position that may be adjusted for orcompensated for during processing of the magnetic sensor signals).

FIG. 8 illustrates details of an embodiment 68 of circuitry that may beused to couple a manual user interface device, such as devices 50 or 63,to an electronic computing device or system such as a personal computer(PC) 70, which may be a notebook or laptop computer, desktop computer,tablet computer, smart phone, or other computing device.

In operation, sensors 55 may generate signals, such as periodically orasynchronously, associated with sensed displacements of the cylindricalmagnets 54 (sensors may also generate signals during time periods whenthe magnets and associated actuator(s) are in a released position,and/or the user interface device may use determination of a releasedstate for a period of time to control other functions, such ascontrolling power consumption).

The sensor signals may be sensed at one or more positions of themagnets, which may be positions relative to a reference or releasedstate position. The sensed signals may then be sent to a processingelement such as, for example, an ARM (or other) processor 69, which maybe an NXP LCP2366 microcontroller or other processing device. The sensedsignals may be in digital format or may be converted to digital format(if in analog format) by an analog-to-digital converter (A/D), which maybe in the processor or in a separate device. The processor may thenperform one or more processing methods on the received signals, such asthose described subsequently herein, to determine information such as anestimated position, motion, and/or deformation of the actuator and/orassociated magnets. The information may be provided in an output signal,which may be sent as output data, in a compatible format, to the PC 70or other electronic computing device.

In an exemplary embodiment, a serial peripheral interface (SPI), orother parallel or serial connection 71, may be used to transmit sensoroutput signals from the sensors 55 to the processor 69. A ground (GND)connection 72 and a power connection 73 may also connect the sensors 55to the ARM processor 69. The PC 70 may be connected to the processor 69by a USB connection 74, which may advantageously provide both datatransmission between the processor 69 and PC 70 and power to the ARMprocessor 69. Variations of the circuitry 68 as illustrated in FIG. 8will be apparent to those skilled in the art. For example, differentcircuitry embodiments may have a different quantity of sensors andmagnets, different power and interface circuitry, use differentcomponents, or have other differences in configuration. For example,different types of processing elements, such as differentmicrocontrollers and/or different circuits for transmitting data and/orpower to the manual user interface device, may be used.

FIG. 9 illustrates details 900 of an embodiment of a magnetic fieldsensing configuration and associated magnets consistent with the presentinvention. In an exemplary embodiment, the magnetic sensors, may beconfigured to measure three magnetic field components, notated herein asB_(x), B_(y), and B_(z) associated with corresponding magnets so thateach of these three component measurements corresponds to a sensed valuealong one of three axes of diagram 900. A magnetic field component inthe X-Y plane extending radially from the Z axis, notated herein asB_(r), may also be calculated in a processing element by solving forB_(r) as SQRT(B_(x) ²+B_(y) ²). By calculating B_(r), the sensor signalsmay be processed using a magnetic field model configured in the form oflookup tables (such as described subsequently herein), which maysimplify processing and/or preserve storage space for memory associatedwith the processing element.

FIGS. 10 and 11 illustrate portions of example lookup tables (LUTs) 1000and 1100, respectively, that may be used to process received sensorinformation to determine position, motion, and/or deformation estimatesfor the magnets and associated actuator. LUT 1000 is a radialdisplacement lookup table and LUT 1100 is a Z-axis displacement lookuptable. In order to interpret magnetic field components to determinepositional information of a corresponding magnet, such as ones of thecylindrical magnets 54 of FIGS. 1-8, a processing element may use thesensed magnetic field component values (as may be generated by magneticsensors, such as sensors 55 of FIG. 8) to retrieve information from aradial displacement lookup table 1000 and a Z-axis displacement lookuptable 1100. The values of the field model data represented in the lookuptables may be calculated using commercially available modeling softwaresuch as, for example, finite element modeling software provided byCOMSOL (available at www.comsol.com) or other vendors.

In the examples shown in FIGS. 10 and 11, both radial displacement LUT1000 and Z-axis displacement LUT 1100 tables are configured in threecolumns. The first column includes a range of measured values thatdescribes a radius in magnetic field component measurements between themagnets and the Z-axis of its corresponding magnetic sensor. In theseexamples the units are milliteslas (mT).

It is noted that measurements in the magnetic field components about xand Y may alternately be used in place of radial measurements as shown.Utilizing a radial measurement of the magnetic field components requiressome additional calculations, but may be advantageous in cases whereless storage space is available, since radial information typicallyrequires far less storage space. The second column includes a range ofmeasured values along the Z-axis in magnetic field componentmeasurements between the magnets and corresponding magnetic sensors(similarly in milliteslas (mT)). Pairing of values from the first columnto those of the second column will correspond to actual positionalinformation between the permanent magnet and corresponding magneticsensor.

In the radial displacement lookup table 1000, partially illustrated inFIG. 10, the third column corresponds to a radial distance from theZ-axis between each of the magnets and corresponding magnetic sensorsmeasured in millimeters. Note that the radial displacement lookup table1000 illustrated in FIG. 10 is a partial illustration as a larger rangeof values is generally used in practice. In the Z-axis displacementlookup table 1100, partially illustrated in FIG. 11, the third columncorresponds to a Z-axis distance between the magnets and correspondingsensors. Again, the Z-axis displacement lookup table 1100 illustrated inFIG. 11 is a partial illustration as a larger range of values isgenerally used in practice.

The information in the magnetic field model defining the relationshipbetween the magnetic field component measurements and positioningbetween the magnets and magnetic sensors may be generated in variousways. For example, empirical direct measurement may be used. Anothermethod of generating this information is by mathematically modeling therelationship. Mathematical modeling software, such as COMSOL, may beused when utilizing this approach. Other methods include, but are notlimited to, using magnetic theory to calculate these relationships andutilizing an over determined self-fit model. An overdetermined self-fitmodel is an empirical approach wherein movement of the magnets about themagnetic sensors are used to refine the lookup table through use of themanual user interface device.

Once the positional data about each magnetic sensor has been determined,one or more processing algorithms may be used to interpret the radialand Z-axis positions as positions along three Cartesian axes. Individualinterpretation of the position of each of the magnets allows forcomparison of the displacement of each magnet with the other magnets tointerpret the position and orientation of the actuator, as well asactions such as squeezes or other deformations. Commands or otherinformation to be provided to an electronic computing system may then begenerated according to the specific displacements of the actuator, suchas in the form of position information, deformation information, motioninformation, switch actuations, and/or other magnetic UID information,and transferred, in an appropriate signaling format, from the magneticUID to the electronic computing system.

FIG. 12 illustrates details of an embodiment of a process 1200 fordetermining the position of magnets, such as the magnets 54 shown inFIG. 8, in relation to corresponding magnetic sensing elements, such ascorresponding magnetic sensors 55, from the magnetic field componentmeasurements. In a typical configuration, one magnet is paired with onemagnetic sensor; however, other configurations of magnets and magneticsensors may be used in some embodiments. At stage 1210, magnetic fieldcomponents may be measured by the magnetic sensors in one or moredimensional axes, typically in three orthogonal axes for each sensordevice. In the example process 1200, three-dimensional measurements maybe made by the magnetic sensors, with the three-dimensional axes ofmeasurement denoted as B_(x), B_(y), and B_(z). In an exemplaryembodiment, multi-axis sensors, such as two or three axis magneticsensors, may be used to sense magnetic fields in all three axes at asingle reference point on or in the sensor. The sensing may be periodic,such as at 1 millisecond or 10 millisecond intervals or at otherperiodic sensing intervals, and/or may be asynchronous, such as at arate or time determined by a relative amount of motion, or responsive toan interrupt or other circuit action, such as in time intervalsdetermined by a power control circuit or other circuit.

At stage 1220, the measured magnetic field component information may betransferred or otherwise provided to a processing element, such as toARM processor 69 as shown in FIG. 8 (and/or to other processing elementsin various embodiments, such as ASICs, DSPs, FPGAs, othermicrocontrollers, or programmable devices). The transferred informationmay be in an analog or digital format, depending on the outputcapabilities of the magnetic sensors and the input capabilities of theprocessing element.

notated herein as B_(x), B_(y), and B_(z), associated with correspondingmagnets so that each of these three component measurements correspondsto a sensed value along one of three axes of diagram 900. A magneticfield component in the X-Y plane extending radially from the Z axis,notated herein as B_(r), may also be calculated in a processing elementby solving for B_(r) as SQRT(B_(x) ²+B_(y) ²). By calculating B_(r), thesensor signals may be processed.

At stage 1230, a radial magnetic field component may be calculated. Forexample, the equation SQRT(B_(x) ²+B_(y) ²) may be processed in theprocessing element to generate a value for B_(r), the value of themagnetic field component extending radially from the Z axis at thesample time. As noted previously, determining B_(r) may be advantageousin applications where storage capability is constrained; however, insome embodiments, signal processing using B_(x) and B_(Y), rather thanB_(r), may alternately be used.

At stage 1240, with a known value of B_(r) and B_(z), one or more lookuptables, such as example radial displacement lookup table 1000 andexample Z axis displacement lookup table 1100, may be accessed by theprocessing element to establish a radial displacement from the Z axisrespectively and a position along the Z axis. The radial displacement isdenoted hereafter as r and the position along the Z axis is denotedhereafter as z.

At stage 1250, calculations may be done to determine x and y valuesdefining an estimated location of the magnet in relation to thecorresponding magnetic sensor, such as in a Cartesian coordinate system.In a typical application, the expression B_(x)/B_(y) may be assumed tobe proportionate to the expression x/y, and the values of x and y may befound by:

$x = {{\frac{B_{x}}{B_{y}}y\mspace{14mu}{and}\mspace{14mu} y} = {\frac{B_{y}}{B_{y}}{\sqrt{\frac{r^{2}}{1 + ( \frac{B_{x}}{B_{y}} )^{2}}}.}}}$

In this way, positional information of each magnet in the form of x, y,and z, coordinates may be determined with respect to each magnet'scorresponding magnetic sensor. In other embodiments, alternatecoordinate systems may be used for the output information if such acoordinate system would be advantageous in either processing sensor dataor providing output data from the user interface device to an electroniccomputing device or system. For example, in some applications it may bedesirable to provide output information in a non-Cartesian coordinatesystem, such as one using angle and magnitude information to represent aposition in space, in which case the signals from the magnetic sensorsmay be processed directly in the non-Cartesian coordinate system andoutput in the non-Cartesian system. In some embodiments, it may bedesirable to solve directly for position in a Cartesian system and thenconvert this information to a non-Cartesian coordinate system, or solvein one non-Cartesian coordinate system and output the positionalinformation in a second, different non-Cartesian coordinate system.

In addition, in some embodiments, other processing stages and/oralgorithms may be used in addition to, or in place of, the lookup tablesto solve for position information of the magnets and/or actuator. Forexample, the magnetic field model may be a closed form solution model,such as may be generated analytically by, for example, solving magneticfield equations based on the particular magnet and sensor configuration,or by generating a mathematical model based on measured data forparticular magnet and sensor configurations and fitting the measureddata to a closed-form model.

FIG. 13 illustrates details of another embodiment of a process fordetermining the position of magnets, such as the magnets 54 shown inFIG. 8, in relation to corresponding magnetic sensing elements, such ascorresponding magnetic sensors 55, from magnetic field componentmeasurements. As shown in FIG. 13, process 1300 may be used to determinethe positions of the magnets in relation to corresponding magneticsensors using an indexed table of possible magnetic field values.

At stage 1310, magnetic field components for each magnet, B_(x), B_(y),and B_(z), may be measured by ones of corresponding magnetic sensors. Inan exemplary embodiment, this may be done by a three-axis magneticsensor. At stage 1320, the magnetic field component measurements may betransferred or otherwise provided to a processing element or module,such as to ARM processor 69 as shown in FIG. 8 (and/or to otherprocessing elements in various embodiments, such as ASICs, DSPs, FPGAs,other microcontrollers, or programmable devices).

At stage 1330, B_(r) may be calculated in the processing element, suchas by solving the equation B_(r)=SQRT(B_(x) ²+B_(y) ²). At stage 1340,lookup tables, such as two indexed tables, including a first table, B_(r), of magnetic field components in the radial direction and a secondtable, B _(z), of magnetic field components in the z direction, may beaccessed to find the pair of table values B _(r)(N_(r), N_(z)), B_(z)(N_(r), N_(z)), that most closely correspond to the measured values,B_(r) and B_(z).

The most closely related B _(r)(N_(r), N_(z)), B _(z)(N_(r), N_(z)) pairto each measured (B_(r), B_(z)) pair may be identified, for example, asthe minimum value of the expression |B_(r)−B _(r)(N_(r),N_(z))|+|B_(z)−B _(z)(N_(r), N_(z))| for the set of possible pairs ofvalues in the tables B _(r) and B _(z). The tables B _(r) and B _(z) maybe organized such that the values of r linearly increase with the indexN_(r) at spacing M_(r) with offset D_(r) and the values z increaselinearly with the index N_(z) at spacing M_(z) with offset D_(z), or inother suitable configurations.

At stage 1350, a value for r may be determined given the index N_(r)according to the relationship r=N_(r)*M_(r)+D_(r). Similarly, a valuefor z may be calculated from the index N_(z) according to therelationship z=N_(z)*M_(z)+D_(z). Alternatively, it will be apparent tothose skilled in the art that the tables may also be arranged in variousnon-linear configurations and that corresponding suitable functions maybe evaluated to relate the (N_(r), N_(z)) pair to their correspondingvalues of r and z.

At stage 1360, x and y values in Cartesian coordinates may bedetermined. In a typical application, the expression B_(x)/B_(y) may beassumed to be proportionate to the expression x/y, and the values of xand y may be found by solving:

$x = {{\frac{B_{x}}{B_{y}}y\mspace{14mu}{and}\mspace{14mu} y} = {\frac{B_{y}}{B_{y}}{\sqrt{\frac{r^{2}}{1 + ( \frac{B_{x}}{B_{y}} )^{2}}}.}}}$Accordingly, positional information for each magnet in the form of x, y,and z coordinates may be established relative to corresponding magneticsensors.

In other embodiments, alternate coordinate systems may be used for theoutput information if such a coordinate system would be advantageous ineither processing sensor data or providing output data from the userinterface device to an electronic computing device or system. Forexample, in some applications it may be desirable to provide outputinformation in a non-Cartesian coordinate system, such as one usingangle and magnitude information to represent a position in space, inwhich case the signals from the magnetic sensors may be processeddirectly in the non-Cartesian coordinate system and output in thenon-Cartesian system. In some embodiments, it may be desirable to solvedirectly for position in a Cartesian system and then convert thisinformation to a non-Cartesian coordinate system, or solve in onenon-Cartesian coordinate system and output the positional information ina second, different non-Cartesian coordinate system.

In addition, in some embodiments, other processing stages and/oralgorithms may be used in addition to, or in place of, the lookup tablesto solve for position information of the magnets and/or actuator. Forexample, the magnetic field model may be a closed form solution model,such as may be generated analytically by, for example, solving magneticfield equations based on the particular magnet and sensor configuration,or by generating a mathematical model based on measured data forparticular magnet and sensor configurations and fitting the measureddata to a closed-form model.

FIG. 14 illustrates an embodiment of a process 1400 for usinginterpolation to refine positional data of magnets and/or associatedactuators. At stage 1410, the magnetic field components B_(x), B_(y),and B_(z) may be measured by a magnetic sensor, such as describedpreviously. At stage 1420, the measured magnetic field components may betransferred to a processing element, such as the ARM processor 69 asshown in FIG. 8 (and/or to other processing elements in variousembodiments, such as ASICs, DSPs, FPGAs, other microcontrollers, orprogrammable devices).

At stage 1430, a value of B_(r), the magnetic field component extendingradially from the Z axis, may be determined, such as by solving forSQRT(B_(x) ²+B_(y) ²). In an exemplary embodiment, lookup tables may beused, such as described previously. The B _(r) and B _(z) values may beuniformly spaced within the tables.

At stage 1440, since measured values of B_(r) and B_(z) may not directlycorrespond to a (B _(r), B _(z)) pair as found in a radial positionlookup table, such as the radial position lookup table 1000 shown inpart in FIG. 10, or a Z-axis position lookup table, such as the Z-axisposition lookup table 1100 as shown in FIG. 11, a set of closereferenced measurements, such as, for example, the four (or other) mostclosely referenced measurements in the lookup table, may be used toproduce a more accurate approximation of the positional data of eachmagnet. In an example embodiment using the four closest pairing, thefour closest (B _(r), B _(z)) pairings referenced in each table may bedenoted as (B_(r1), B_(z1)), (B_(r1), B_(z2)), (B_(r2), B_(z1)),(B_(r2), B_(z2)), where (B_(r), B_(z)) may be measured between thesefour closest (B _(r), B _(z)) pairings.

For each of these four closest (B _(r), B _(z)) pairings, an r value andz value may be found from a radial position lookup table, such as theradial position lookup table 1000 shown in part in FIG. 10, and a Z-axisposition lookup table, such as the Z-axis position lookup table 1100shown in FIG. 11. These values may be denoted such that (B_(r1), B_(z1))results in a (r₁, z₁) pairing, (B_(r1), B_(z2)) results in a (r₂, z₂)pairing, (B_(r2), B_(z1)) results in a (r₃, z₃) pairing and (B_(r2),B_(z2)) results in a (r₄, z₄) pairing. In embodiments using other lookuptable configurations, a set of closest reference values in theparticular coordinate space used may similarly be generated.

Interpolated r and z values, which may be denoted as r and z, may thenbe determined. For example, interpolated values may be found by solvingthe following to determine:

$\overset{\_}{r} = {{( {1 - \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}}} )( {1 - \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}}} )r_{1}} + {( {1 - \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}}} )( \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}} )r_{2}} + {( \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}} )( \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}} )r_{3}} + {( \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}} )( {1 - \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}}} )r_{4}}}$     and$\overset{\_}{z} = {{( {1 - \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}}} )( {1 - \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}}} )z_{1}} + {( {1 - \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}}} )( \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}} )z_{2}} + {( \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}} )( \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}} )z_{3}} + {( \frac{B_{r} - B_{r\; 1}}{B_{r\; 2} - B_{r\; 1}} )( {1 - \frac{B_{z} - B_{z\; 1}}{B_{z\; 2} - B_{z\; 1}}} ){z_{4}.}}}$In embodiments using other lookup table configurations, interpolatedvalues determined in the particular coordinate space may similarly begenerated.

At stage 1450, x and y values describing the location of the magnet inrelation to the corresponding magnetic sensor in a Cartesian coordinatesystem may be determined, such as described previously herein. In atypical application, the expression B_(x)/B_(y) may be assumed to beproportionate to the expression x/y, and the values of x and y may befound by solving:

$x = {{\frac{B_{x}}{B_{y}}y\mspace{14mu}{and}\mspace{14mu} y} = {\frac{B_{y}}{B_{y}}{\sqrt{\frac{r^{2}}{1 + ( \frac{B_{x}}{B_{y}} )^{2}}}.}}}$

In this way, positional information of each magnet in the form of x, y,and z coordinates is established with respect to its correspondingmagnetic sensor. In other embodiments, alternate coordinate systems maybe used for the output information if such a coordinate system would beadvantageous in either processing sensor data or providing output datafrom the user interface device to an electronic computing device orsystem. For example, in some applications it may be desirable to provideoutput information in a non-Cartesian coordinate system, such as oneusing angle and magnitude information to represent a position in space,in which case the signals from the magnetic sensors may be processeddirectly in the non-Cartesian coordinate system and output in thenon-Cartesian system. In some embodiments, it may be desirable to solvedirectly for position in a Cartesian system and then convert thisinformation to a non-Cartesian coordinate system, or solve in onenon-Cartesian coordinate system and output the positional information ina second, different non-Cartesian coordinate system.

In addition, in some embodiments, other processing stages and/oralgorithms may be used in addition to, or in place of, the lookup tablesto solve for position information of the magnets and/or actuator. Forexample, the magnetic field model may be a closed form solution model,such as may be generated analytically by, for example, solving magneticfield equations based on the particular magnet and sensor configuration,or by generating a mathematical model based on measured data forparticular magnet and sensor configurations and fitting the measureddata to a closed-form model.

Some user interface device embodiments may provide actuator tiltingfunctionality. During tilting displacements of the actuator andcorresponding magnets in these embodiments, a recalculation may be madewhereby the calculated tilt of the actuator may be used determine thetilt of each individual magnet. The determined degree and direction ofthe tilt of each magnet may be then used to rotate the frame ofreference for each corresponding magnetic sensor. Higher sensitivity foruser interface devices may be achieved by using this processing approachto further refine positional information for each magnet during tiltingdisplacements.

FIG. 15 illustrates details of an embodiment of a process 1500 that maybe used for interpreting the state of displacements in a manual userinterface device that employs magnetic sensors such as sensors 55.Process 1500 may be used in various embodiments to distinguishbackground or noise signals from signals caused by user interaction withthe magnetic UID. The term “sensor state,” when used herein in referenceto a magnetic sensor, refers to state interpretations of the measuredmagnetic field components corresponding to user interaction with themagnetic UID. For example, in some implementations, sensor states mayinclude a released state in which no operator-initiated forces areacting upon the manual actuator, and a displaced (or deformed) state inwhich operator-initiated forces are acting upon the manual actuatorcausing displacements or deformations of the manual actuator andmagnets. In addition, in some implementations, reentry states may bedefined wherein a reentry state defines a state where the manual userinterface device is transitioning between a released state and displacedor deformed state or vice versa. In the embodiment of FIG. 15, onlydisplaced and released states are processed, whereas in processembodiment 1600 of FIG. 16 (described subsequently herein), reentrystates are further used.

Process 1500 may begin at stage 1502, where data associated with thesensor state may be accessed. Assuming no user interaction, the sensorstate may be defined initially as being in a released state (e.g., priorto a first use of the magnetic UID). At stage 1504, an additionalposition determination process, such as the processes described withrespect to FIGS. 12, 13 and/or 14, may be implemented to determinepositions of magnets in relation to corresponding magnetic sensors. Atstage 1506, Cartesian coordinates (or other position coordinates)defining the location of the magnet determined at stage 1504 may bestored as the current magnet position. At decision stage 1508, adecision may be made as to whether the calculated variance in themeasurement of B_(z) is below a predetermined variance threshold.

A predetermined variance threshold may be selected so as to be above thetypical variance of small incidental changes in the measurement of B_(z)due to variables such as noise or other variations inherent in themagnetic sensors, but below expected signals caused by user interactionswith the magnetic UID. As these incidental changes tend to cause smallvariations in the magnetic field component measurements, any variationcaused by even natural unintentional movements of a user's touch on themagnetic UID may result in a greater variation and may therefore bereadily distinguishable from variations below the predetermined variancethreshold. Testing of particular implementations of magnetic UIDs may bedone to determine appropriate variance thresholds, which may then bestored in a memory for access by a processing element during processimplementation.

If a variance in the measurement of B_(z) is at or above thepredetermined variance threshold, a variance counter may be reset atstage 1510, and the sensor state redefined as being in a displaced ordeformed state at stage 1512. Alternately at decision stage 1508, if thevariance in the measurement of B_(z) is below the predetermined variancethreshold, a stage 1514 may be performed in which the variance counteris incremented. At stage 1516, a calculation may be done to determine avalue of Z_(c), the average displacement along the Z axis from a rollingaverage of the most recent center Z axis coordinates. Once Z_(c) hasbeen calculated at stage 1516, a decision may be made at stage 1518 todetermine if Z_(c) is below a predefined Z_(c) threshold and thevariance counter above the variance counter threshold. If Z_(c) is notbelow the Z_(c) threshold or the variance counter is not above thevariance counter threshold, a decision stage 1520 may be implemented todetermine whether Z_(c) is below a Z outlier threshold and the variancecounter is above an outlier variance counter threshold.

The outlier thresholds may be defined as those magnetic field componentsthat correspond to displacements of the magnet along their outermostpossible positions from a released state. Outlier thresholds may be usedto prevent a magnetic UID from determining a false released state when,for instance, a heavy object is placed on the actuator, causing it to befully depressed but remain motionless in the fully depressed position.If decision stage 1520 results in a “NO” decision, the state may beredefined at stage 1512 to a displaced state. Alternately, if a “YES”decision results at stage 1520, indicating Z_(c) is below the Z_(c)threshold, then processing may proceed to stage 1522. Stage 1522 mayalso be executed if, in the stage 1518, Z_(c) is below the Z_(c)threshold and the variance counter is not below the variance counterthreshold.

At stage 1522, the current magnetic field component measurements may bestored as a new released state reference point. The Cartesiancoordinates (or other coordinate system position coordinates) of themagnets as stored at stage 1522 may also be defined as being themagnets' new center position. At stage 1524, the sensor state may beredefined as a released state. Once the sensor state has been redefined,the stages of process 1500 may be repeated with the reevaluated sensorstate becoming the new sensor state of stage 1502. In some embodiments,similar or equivalent processes may be used to process signals inalternate coordinate systems, such as signals in x, y, z coordinates.

FIGS. 16A and 16B illustrate details of an embodiment of a process 1600that uses a center calibration prism to aid in interpreting the state ofdisplacements in a magnet UID. Process 1600 may be used in place of, orin addition to, process 1500 as described previously with respect toFIG. 15. The term “center calibration prism” as used herein refers to aset of boundaries in magnetic field measurements of the magnetic UIDthat may be predetermined, such as by a designed or device programmer.Generally, the center calibration prism process is designed to allow acertain degree of noise inherent in the system.

Process embodiment 1600 utilizes two possible states of the magneticfield measurements with respect to the center calibration prism—aninside prism boundary state and an outside prism boundary state. Aninside prism boundary state may be defined by a magnetic sensor'smeasured magnetic field components being within center calibrationprisms boundaries, and an outside prism boundary state may conversely bedefined by any of a magnetic sensor's measured magnetic field componentsbeing outside the boundaries of the center calibration prism. Particularprism boundary states may be stored and redefined periodically, such asat each cycle of process 1600. By appropriately redefining the prismboundary state of process 1600, the manual user interface device maymore accurately interpret the difference between user displacements andfalse displacements based on measurements in the magnetic fieldcomponents and/or may be dynamically readjusted to changing operator orenvironmental conditions. This, in turn, may be used to implement anauto-zeroing or redefining of the released state position of eachmagnet.

Process 1600 may begin at stage 1602, as data associated with the sensorstate is accessed. Initially, the sensor state may be determined asbeing in a released state prior to first use of the manual userinterface device, such as previously described with respect to process1500. Unlike process 1500 of FIG. 15, three sensor states may be used inprocess 1600; a released state, a displaced state, and a reentry state.The definitions of “released state” and “displaced state” are the sameas defined in conjunction with FIG. 15. The term “reentry state” as usedherein refers to a state in which the manual user interface device istransitioning from one sensor state to the other (such as from thereleased state to displaced state or vice-versa).

Generally, the reentry state occurs when the actuator has been releasedfrom a displaced state or moved from a released state and the processingunit has identified a change in the magnetic field componentmeasurements but has yet to determine that the magnetic UID is in adisplaced state or released state. At stage 1604, positional informationmay be determined, such as by the processes described in FIG. 12, 13, or14, where magnetic field components are measured and interpreted as theposition of the magnet in relation to its corresponding magnetic sensor.At stage 1606, the Cartesian coordinates (or other coordinate positions)describing the location of the magnet determined at stage 1604 may bestored as the current magnet position.

At decision stage 1608, a determination may be made as to whether thereis a variance in the measurements of B_(x), B_(y), or B_(z) that isbelow a variance threshold. If the variance in the measurement of B_(x),B_(y), or B_(z) is above or at the variance threshold, a stage 1610 maybe executed where a variance counter is reset to zero. Following stage1610, a decision may be made at stage 1612 as to whether the magneticfield component measurements from stage 1604 are inside a centercalibration prism.

If the magnetic field component measurements are not within the centercalibration prism, the prism boundary state may be redefined as anoutside prism boundary state and stored accordingly at stage 1614 (shownin FIG. 16B), and the sensor state may be determined to be a displacedstate at stage 1616. Conversely, if the magnetic field componentmeasurements are within the center calibration prism, a stage 1618 maybe implemented in which the prism boundary state is redefined as aninside prism boundary state and stored accordingly.

A decision stage 1620 may also be implemented if the magnetic fieldcomponent measurements are within the center calibration prism (asdetermined at stage 1612). At decision stage 1620, a decision may bemade as to whether the prior sensor state was a released state. If theprior sensor state was a released state, a stage 1616 may be implementedin which the sensor state is redefined as a displaced state. Conversely,if the prior sensor state was not a released state, a decision may bemade at decision stage 1622 as to whether the prior sensor state was ina displaced state and the prior prism boundary state is an outside prismboundary state. If the prior sensor state was a displaced state and theprior prism boundary state is an outside prism boundary state, thesensor stage may be redefined as a reentry state at stage 1624. If thepast sensor state was not a displaced state or the past prism boundarystate was not an outside prism boundary state then, at stage 1626, nochange from the prior sensor state to the reevaluated sensor state needbe made.

Referring back to decision stage 1608 of FIG. 16A, if the variance inthe measurement of B_(x), B_(y), and B_(z) is below the variancethreshold (at stage 1608), a stage 1628 may be implemented, incrementingthe variance counter. At stage 1630, a calculation may be made todetermine the difference between the sensor component measurements ofstage 1604 and the center calibration prism, and at decision stage 1632,a determination may be made as to whether the current magnetic componentmeasurements are inside the center calibration prism and if the variancecounter is above the variance counter threshold. If stage 1632 resultsin a “YES” decision, a stage 1634 (as shown in FIG. 16B) may beimplemented. At stage 1634, the measured magnetic field components fromstage 1604 may be defined as the new reference point. The Cartesiancoordinates of the magnet from stage 1604 may also be defined as a newmagnet center position. Following stage 1634, the sensor state may beredefined as a released state at stage 1636 and the prism boundary statemay be redefined as an inside prism boundary state at stage 1618.

If stage 1632 results in a “NO” decision, processing may proceed todecision stage 1612 (as shown in FIG. 16B), where a decision may be madeas to whether the magnetic field component measurements from stage 1604are inside a center calibration prism. If the magnetic field componentmeasurements are not within the center calibration prism, stage 1614 maybe implemented, where the prism boundary state may be redefined as anoutside prism boundary state and stored accordingly. If the magneticfield component measurements are within the center calibration prism,stage 1618 may be implemented with the prism boundary state redefined asan inside prism boundary state and stored accordingly.

Decision stage 1620 may also be implemented if the magnetic fieldcomponent measurements are within the center calibration prism. Atdecision stage 1620, a decision may be made as to whether the prior orpast sensor state was a released state. If the prior sensor state was areleased state, stage 1616 may be implemented, with the sensor stateredefined as a displaced state.

If the prior sensor state was not a released state, a decision may bemade at stage 1622 as to whether the prior sensor state was a displacedstate and the prior prism boundary state is an outside prism boundarystate. If the prior sensor state was a displaced state and the priorprism boundary state is an outside prism boundary state, the sensorstate may be redefined as a reentry state at stage 1624. If the pastsensor state was not a displaced state and the past prism boundary statewas not an outside prism boundary state then, at stage 1626, no changefrom the prior sensor state to the reevaluated sensor state need bemade. Once the sensor and prism boundary states have been redefined andstored accordingly, the stages of the process 1600 may be repeated, withthe redefined sensor and prism boundary states carried back through tostage 1602 for subsequent process execution.

FIGS. 17A and 17B illustrate details of a process embodiment 1700 thatuses a secondary calibration prism as well as a center calibration prismto aid in interpreting the state of displacements in a magnetic UID. Theterm “center calibration prism” as used herein refers to a set ofboundaries in magnetic field measurements of the magnetic UID that maybe predetermined, such as by a designed or device programmer. The term“secondary calibration prism” as used herein refers to a secondpredetermined set of boundaries in magnetic field measurements that maybe similarly determined and predefined. The boundaries of the centercalibration prism may be selected such that they lie within theboundaries of the secondary calibration prism. Generally, the centercalibration prism and the secondary calibration prism are designed toallow a certain degree of noise inherent in the system.

The secondary calibration prism may allow for the center calibrationprism to be redefined due to small variances in particular, redefiningthe center calibration prism's centroid or location. Process 1700 mayutilize two possible states of the magnetic field measurements withrespect to the center calibration prism; an inside prism boundary stateand an outside prism boundary state. Both the inside prism state and theoutside prism state may be defined with respect to the centercalibration prism.

Process 1700 may begin at stage 1702, as data regarding the sensor stateis accessed, such as described previously with respect to processes 1500and 1600. Initially, the sensor state may be determined as being in areleased state prior to first use of the manual user interface device,as in processes 1500 and 1600. Three sensor states may be used inprocess 1700; a released state, a displaced state, and a reentry state.The definitions of “released state” and “displaced state” are the sameas defined with respect to FIG. 15.

At stage 1704, a positional determination may be made, such as describedwith respect to the processes of FIG. 12, 13, or 14 by which magneticfield components are measured and interpreted as the position of themagnet in relation to its corresponding magnetic sensor. At stage 1706,the Cartesian coordinates (or other coordinate system positions)describing the location of the magnet determined at stage 1704 may bestored as the current magnet position. At decision stage 1708, adetermination may be made as to whether the variance of the measurementof B_(x), B_(y), or B_(z) is below a variance threshold. If the variancein the measurement of B_(x), B_(y), or B_(z) is at or above the variancethreshold, a stage 1710 may be implemented and a variance counter resetto zero.

Subsequent to stage 1710, a decision may be made at stage 1712 as towhether all the magnetic field component measurements from stage 1704are inside a center calibration prism. If any magnetic field componentmeasurements are not within the center calibration prism, a decision maybe made at stage 1714 as to whether the variance counter is above thesecondary reset counter threshold. If the variance counter is not abovethe secondary reset counter threshold, the prism boundary state may beredefined as an outside prism boundary state and stored accordingly atstage 1716 and the sensor state may be determined to be a displacedstate at stage 1718.

If the variance counter is above the secondary reset counter threshold,a decision may be made at stage 1720 if there are any of the magneticfield component measurements outside the center calibration prism andinside the secondary calibration prism. If there are not any of themagnetic field component measurements outside the center calibrationprism and inside the secondary calibration prism, the prism boundarystate may be redefined as an outside prism boundary state and storedaccordingly at stage 1716, and the sensor state may be determined to bea displaced state at stage 1718.

If there are any of the magnetic field component measurements outsidethe center calibration prism or inside the secondary calibration prism,for each axis that satisfies the previous condition, the prism's centercoordinates may be updated and displaced at stage 1722 such that thecurrent magnetic field component measurements are inside the updatedcenter calibration prism. At stage 1724, the variance counter may bereset, and at stage 1726, the prism boundary state may be redefined asan inside prism boundary state and stored accordingly.

If all the magnetic field component measurements are inside the centercalibration prism at decision stage 1712, the prism boundary state maybe redefined as an inside prism boundary state and stored accordingly atstage 1726, and a decision may be made at decision stage 1728 as towhether the past or previous state was a released state. If the pastsensor state was a released state, stage 1718 may be implemented toredefine the sensor state as a displaced state. Conversely, if the pastsensor state was not a released state, a decision may be made atdecision stage 1730 as to whether the past sensor state was a displacedstate and the prism boundary state an outside prism state. If the pastsensor state was a displaced state and the prism boundary state was anoutside prism state, the sensor state may be redefined as a re-entrystate at stage 1732. If the past sensor state was not a displaced stateand/or the prism boundary state was not an outside prism state, at stage1734 no change in sensor state need be made.

Referring back to stage 1708 as shown in FIG. 17A, if the variance inthe measurement of B_(x), B_(y), and B_(z) is below the variancethreshold, a stage 1736 may be implemented, incrementing the variancecounter. At stage 1738, a calculation may be made to determine thedifference between the sensor component measurements of stage 1704 andthe center calibration prism. A decision may be made at stage 1740 as towhether the current magnetic component measurements are inside thecenter calibration prism and if the variance counter is above thevariance counter threshold. If stage 1740 results in a “YES” decision, astage 1742 may be reached.

At stage 1742, the measured magnetic field components from stage 1704may be defined as the new reference point, and the Cartesian coordinates(or other coordinates system positions) of the magnets from stage 1704may also be defined as a new magnet center position. The sensor statemay be redefined as a released state in a step 1744, and the prismboundary state may be redefined as an inside prism boundary state atstage 1726.

If a “NO” decision is determined at stage 1740, processing may continueto decision stage 1712, where a determination as to whether the magneticfield component measurements from stage 1704 are inside a centercalibration prism and successive stages following stage 1712, asdescribed previously, may be implemented. Once the sensor and prismboundary states have been redefined and stored accordingly, processingmay be repeated, with the redefined sensor and prism boundary statescarried back through to stage 1702, where process 1700 may be repeated.

FIG. 18 illustrates details of an embodiment of a process 1800 fordetermining displacement of a manual actuator by sensing displacement ofmagnets, such as cylindrical magnets 54 of FIG. 8. In an exemplaryembodiment, the position of each magnet relative to the other magnets isknown, such as by design or measurement, testing. Assuming the placementis known, a center point of the magnets may be defined or determinedwhen the manual user interface device is in a released state at stage1810. For example, the center point of each of the magnets, while themanual user interface device 50 is in the released state, may be denotedas C, and may be defined as the closest point equidistant to theposition of each of the magnets.

The position of each of the magnets in relation to C, while the manualuser interface device is in the same released state, is denoted hereinwith the letter C and a sequential subscript number starting at C₁. Forexample, if a particular embodiment has four magnets, the positions ofmagnets 1 through 4 would be denoted as C₁, C₂, C₃, and C₄,respectively.

As different embodiments may contain different numbers of the magnets,different embodiment may have a different total number of sequentialsubscript numbers preceded by a C. For example, given a manual userinterface device with four magnets, with C as the center point of thefour magnets at coordinates (or position) (x₀, y₀, z₀), C₁ would be atcoordinates (x₀+n, y₀, z₀), C₂ would be at coordinates (x₀, y₀+n, z₀),C₃ would be at coordinates (x₀−n, y₀, z₀), and C₄ would be atcoordinates (x₀, y₀−n, z₀), in relation to position C, where n is thedistance between C and any of the magnets. These locations may bedefined at stage 1820.

When a displacement of the magnets has occurred, such as by usermovement (e.g., rotation and/or translation) and/or deformation (e.g.,squeeze) of the actuator, each displaced position of the magnets may bedenoted with the letter S and a sequential subscript number beginning atS₁. At stage 1830, the center point of the new actuator configurationresulting from the movement and/or deformation, S, may be determined.For example, by averaging along each axis of the displaced magnetscoordinates, a displaced center, S, may be determined.

At stage 1840, initial lateral displacements of the magnets, denoted asL, may then be calculated by subtracting the coordinates defined by Cfrom those of S so that (S(x)−C(x), S(y)−C(y), S(z)−C(z)) or L=S−C alongeach axis.

At stage 1850, the sums of L and each of the C₁, C₂, C₃, and C₄ may becalculated to determine a series of new positions denoted as L₁, L₂, L₃,and L₄.

At stage 1860, rotation and/or tilt displacements in both distance anddirection from L to S may be calculated by comparing the orientation ofeach L, with respect to L+C, and each S, with respect to S, about each(L, S) pair. By determining the degree and direction of the individualdisplacements about each of the magnets, the direction and degree ofrotation and/or tilt of the actuator may be determined.

Commands that correspond to movements of a cursor, pointer, or other twoor three dimensional object within an electronic computing device maythen be generated based on the determined position changes. For example,commands corresponding to and approximating analogous movement of theactuator may be generated and provided in an output signal.

At stage 1870, the process 1800 may be repeated, such as by returning tostage 1810 or stage 1830 and repeating the process. The process may berepeated periodically, such as at a predetermined or adjustable period,and/or may be asynchronous, such as based on an estimated speed ofmotion of the actuator or other element of the user interface device,based on an interrupt, or based on another action or circuit function.

In embodiments utilizing a magnetically sensed squeezable mechanism,such as described in U.S. patent application Ser. No. 13/110,910, filedon May 18, 2011, entitled USER INTERFACE DEVICES, APPARATUS, ANDMETHODS, processing may be done in a processing element, such asdescribed previously with respect to FIG. 18, to determine a degreeand/or direction of the squeeze, as well as other information related tothe deformation, such as changes in position between magnets. Thisdeformation information may then be provided as data in an output signalto a personal computer or other electronic computing system.

FIG. 19 illustrates simplified details of an embodiment of a magneticuser interface device having a magnetically sensed squeeze mechanismwith magnets 54 and magnetic sensors 55, along with an embodiment ofcircuitry 1900 for coupling the user interface device to an electroniccomputing system, such as PC 70.

In circuitry embodiment 1900, there are two sets of three of the sensors55 positioned such that three sensors are on the top side of a PCB andthree are located on the underside. Six cylindrical magnets 54 are usedin this embodiment, with three cylindrical magnets 54 located above andcorresponding to the sensors 55 on the top of the PCB and threecylindrical magnets 54 located beneath and corresponding to the sensors55 on the underside.

The sensors 55 generate sensor output signals due to measureddisplacements, which may include squeeze type displacements, of thecylindrical magnets 54, and transmit these signals to a processingelement, such as ARM processor 69 and/or other processing elements. Theprocessing element may implement one or more of the processing methodshereafter described on the sensor signals provided from the sensors 55,and may then send output data, in a compatible format, to PC 70 or toother electronic computing systems.

As shown in FIG. 19, a serial peripheral interface (SPI) (or otherinterface configuration) connection 71 sends the output signals from thesensors 55 to the processor 69. A ground (GND) connection 72 and a powerconnection 73 may also be used to connect the sensors 55 to theprocessor 69. The PC 70 may be connected to the processor 69 by a USBconnection 74 (or other interface configuration for coupling a userinterface device to an electronic computing system), and the connectionmay provide data transmission, power, or both to the processor 69.Variations of the circuitry embodiment 1900 as illustrated in FIG. 19will be apparent to those skilled in the art. For example, differentembodiments may have a different quantity of sensors and/or magnets.Furthermore, different processing elements, such as differentmicrocontrollers or other programmable devices, as well as differentcircuit configurations for sending data and/or power to the userinterface device may be used in various embodiments.

Processing of squeeze-type displacements, which may result indeformation of an element of the user interface device, such as theactuator or a separate squeezable element, may be implemented similar tothe other motion and position sensing described previously herein. Forexample, lookup tables and/or closed form magnetic field models may beused. Similar to the radial displacement lookup table 1000 of FIG. 10and the Z-axis displacement lookup table 1100 of FIG. 11, lookup tablesfor embodiments using magnetically sensed squeeze mechanisms may begenerated for squeeze sensing of the magnetic sensors. FIGS. 20 and 21illustrate details of portions of example lookup tables 2000 and 2100that may be used for such processing. In order to interpret magneticfield components as indicative of the position of a magnet, such as eachof the cylindrical magnets 54, a processing element, such as processor69, can use the magnetic field component measurements to access a radialdisplacement lookup table 2000 and a Z-axis displacement lookup table2100.

The data values of the magnetic field model represented in the lookuptables may be calculated using commercially available physical modelingsoftware, such as COMSOL or other modeling tools. In the example LUTembodiments of FIG. 21 and FIG. 22, both radial displacement lookuptable 2000 and Z-axis displacement lookup table 2100 are composed ofthree columns. The first column is composed of a range of the measuredvalues that describes a radius in magnetic field component measurementsbetween the magnets and the Z-axis of its corresponding magnetic sensorin milliteslas (mT). As described previously herein, it is also possibleto use measurements in magnetic field components about x and y in placeof the radial measurement. Utilizing a radial measurement of themagnetic field components requires some additional calculations but mayadvantageously require less storage space for the processing element.

The second column is composed of a range of measured values along theZ-axis in magnetic field component measurements between the magnets andcorresponding magnetic sensors in milliteslas (mT). Pairing of thevalues from the first column to that of the second column willcorrespond to actual positional information between the magnet andcorresponding magnetic sensor.

In the radial displacement lookup table 2000, partially illustrated inFIG. 20, the third column corresponds to a radial distance from theZ-axis between each of the magnets and corresponding magnetic sensor,measured in millimeters. It is noted that radial displacement lookuptable 2000 as illustrated in FIG. 20 (as well as other lookup tablesdescribed herein) is a partial illustration as a larger range of valuesis generally used in LUTs in practice. In the Z-axis displacement lookuptable 2100, partially illustrated in FIG. 21, the third columncorresponds to a Z-axis distance between the magnets and correspondingsensor. Again, the Z-axis displacement lookup table 2100 illustrated inFIG. 21 is a partial illustration as a larger range of values isgenerally used in practice.

FIG. 22 shows a diagram 2200 illustrating possible positioning ofmagnets within an embodiment of a user interface squeeze mechanism in areleased state. The magnet positions of the three magnets are denoted asC_(i), C_(j), and C_(k) while in a released state and may be calculatedusing methods such as those described with respect to FIGS. 12, 13,and/or 14. Each of these positions may have x, y, and z coordinates suchthat they may be expressed as a point in space, for example, (C_(ix),C_(iy), C_(iz)). The distance between each calculated magnet positionmay be denoted as C_(ij) between C_(i) and C_(j), C_(ik) between C_(i)and C_(k), and C_(jk) between C_(j) and C_(k).

FIG. 23 shows a diagram illustrating possible positioning of magnetswithin an embodiment of a user interface squeeze mechanism in adisplaced state due to a squeeze-type deformation. The magnet positionsof the three magnets are denoted as S_(i), S_(j), and S_(k) while in adisplaced state and may be calculated using methods such as thosedescribed with respect to FIGS. 12, 13, and/or 14. Each of thesepositions may have x, y, and z coordinates such that they may beexpressed as a point in space, for example, (S_(ix), S_(iy), andS_(iz)). The distance between each calculated magnet position may bedenoted as S_(ij) between S_(i) and S_(j), S_(ik) between S_(i) andS_(k), and S_(jk) between S_(j) and S_(k).

The distance between each calculated magnet position, regardless ifdisplaced by a squeeze type displacement or in a released state, may becalculated by taking the magnitude of the vector difference between anytwo calculated magnet positions. For example, C_(ij)=|C_(i)−C_(i)| orC_(ij)=|√{square root over((C_(ix)−C_(jx))²+(C_(iy)−C_(jy))²+(C_(iz)−C_(jz))²)}| may be used tocalculate the distance between C_(i) and C_(j). By performing multiplecalculations, such as by continually comparing these calculated lengthsover a period of time, a squeeze type action may be detected.

A ratio, denoted as R, may be used to determine if the length of a sideof a triangle formed by the three calculated magnet positions increasedor decreased during a time period. For example, a scenario where thecalculated magnet positions move from a released state to a displacedstate may be expressed as R_(ij)=S_(ij)/C_(ij). In this scenario, ifR_(ij) is greater than one, the determined length along that side willhave increased. Where R is greater than one, the squeeze displacementmay be interpreted as originating from a direction ninety degreesrelative to the triangle side length orientation. Similarly, if R_(ij)is less than one, the determined length along that side will havedecreased. When no change in length has occurred, R will equal one. Inother magnet configurations, similar processing may be done to determinechanges in shape or patterns between the magnets.

Some embodiments, such as illustrated in actuator assembly embodiment2400 of FIG. 24, may use very sensitive magnetic sensors, such as aseries of compass sensors 2410 or other high sensitivity sensors. Thecompass sensors 2410 may be commercially available BLBC3-B CMOS 3DCompass sensors from Baolab Microsystems, Xtrinsic MAG3110 DigitalMagnometers from Freescale or other compass or high sensitivity sensors.

In an exemplary embodiment, five compass sensors 2410 may be used suchthat four of the compass sensors 2410 are positioned circumferentiallyabout a circuit board, such as PCB 60, or other user interface deviceelement such that each of the four compass sensors 2410 correspond to asmall magnet 2420. The other compass sensor 2410 (also denoted as a“reference sensor 2410”) may be positioned, for example, centrally onthe PCB 350 such that it is separated from the other circumferentiallypositioned compass sensors 2410.

In these embodiments, the separated compass sensor 2410 may notcorrespond or be matched to any one of the small magnets 2420, and maybe used as a reference sensor to measure and generate reference signalsthat may be used to subtract off any local or background magneticfields, such as the earth's magnetic field or locally generated magneticfields. By using physically small sensors, such as the compass sensors2410, with closely positioned magnets, such as the small magnets 2420,the physical size of the actuator assembly and overall user interfacedevice may be reduced.

FIG. 25 illustrates details of an embodiment of a process 2500 for usinghigh sensitivity magnetic sensors and associated sensor signaling, suchas described with respect to the user interface device embodiment 2400of FIG. 24, to adjust positional information in a user interface deviceusing signals provided from a reference sensor. For example, process2400 may be used to process magnetic measurements collected by aplurality of high sensitivity magnetic sensors, such as the compasssensors 2410 of FIG. 24, to determine the position of magnets such asthe small magnets 2420 as illustrated in FIG. 24. Process 2500 may beused in conjunction with other processes described herein, such as withthe processes as shown in FIG. 12, FIG. 13, or FIG. 14.

At stage 2510 magnetic field measurements may be generated, such as inthree dimensions, B_(x), B_(y), and B_(z), by a plurality of highsensitivity sensors, such as compass sensors 2410. These may includesignals from high sensitivity sensors associated with magnets, as wellas a reference signal generated by the reference sensor (that is notassociated with a magnet such as magnet 2420).

At stage 2520, the measurement information provided from the referencesensor may be used to adjust information from the other sensors. Forexample, the reference sensor signal information may be subtracted fromeach information provided from each of the other compass sensors 2410 togenerate difference information.

Once the difference between the three circumferentially positioned onesof the compass sensors 2410 and the reference sensor 2410 is calculated,positional information may be determined at stage 2530, such as by usingany of the aforementioned or known methods of determining the positionof a magnet within a magnetically sensed user interface device.

FIG. 26 illustrates details of an embodiment of a system including anelectronic computing device (not shown) coupled to a magnetic UIDembodiment 2600, such as via a USB connection, along with an associatedelectronic computing device monitor 2610. In the magnetic UID embodiment2600, a compass device, such as compass chip or other component (notshown), may be incorporated in a base or other component of the magneticUID 2600 to determine the device's relation to a magnetic reference,such as magnetic north. In such embodiments, the orientation of a user'scomputer monitor, such as monitor 2610, may also be determined inrelation to the magnetic reference through the use of, for example, amagnetic compass 2620.

An internal electronic compass inside the monitor 2610 may also be usedto determine the orientation of the monitor 2610 in relation to themagnetic reference. Alternately, the orientation of the monitor 2610 inrelation to the magnetic reference may be inputted into the computingdevice. By using embodiments with this configuration, as the user movesor rotates the entire user input device 2600 relative to the orientationof the monitor 2610, the electronic compass within the user input device2600 may allow the input coordinate system to rotate. For example,pushing the actuator towards the monitor 2610 may consistently result inthe same relative user interface action. The electronic compass in theuser interface device 2600 may also allow the absolute direction ofmotion of seismic induced accelerations at the operating surface to besensed by the device.

In some embodiments, software may be used whereby the orientation of theuser interface device 2600 in relation to the monitor 2610 is initiallydetermined and stored. In such embodiments, all subsequent incidents ofmoving or rotating the entire user interface device 2600 from theinitial determined orientation to the monitor 2610 may be used to rotatethe input coordinate system accordingly. The same software may also beenabled, during an initial set up process, to use operator intendedactuator motions to correspond to determine the orientation of the userinterface device 2600 with respect to that of the monitor 2610.

It some embodiments, permanent magnets, such as described previouslyherein, may be replaced, in whole or in part, with electromagnets, suchas chip scale electromagnet devices (which may be configured, forexample, similar to small SMT inductors). A high sensitivity sensordevice, such as a compass sensor as described previously herein, may beused with the electromagnet to build a compact, single sensor userinterface device. This approach may be viewed similar to a configurationwhere “permanent” magnets could be switched off and on, thereby allowinguse of two different (electro)magnets with a single compact three axissensor. This allows a far smaller, lower cost, single sensor UI deviceto be built compared to multiple, three axis sensors. Applications forthis type of compact device may include notebook computers, smartphones, tablet devices, or devices where small and/or thin userinterface devices may be useful. Since high sensitivity sensors such ascompass sensors are very sensitive, a very low powered, very smallelectromagnet array (e.g., a cross-shaped pair or other configuration ofelectromagnets) may be used in place of permanent magnets.

One potential advantage of such an implementation is that a pair ofcrossed dipoles (e.g., the energized electromagnets) that are energizedin sequence or in combination may be used to eliminate the ambiguityassociated with the movement around the axis of symmetry of a singledipole, and thereby allow a single three axis sensor to be used whilestill allowing all six degrees of freedom to be sensed. Electromagnetembodiments may use similar elements and methods to those describedpreviously for permanent magnet implementations. The primary differenceis replacement of the small permanent magnets with small controllableelectromagnets (dipoles), and associated electromagnet driver controlsand/or associate sensor controls. For example, in one embodiment of anelectromagnet magnetic UID configuration a cross-shaped electromagnetmay use a small chip scale, wire wound surface mount (SMT) cross dipoleinductor that can produce either a magnetic dipole A or a magneticdipole B, such as by using a cross-shaped electromagnet, when electriccurrent is run through wire windings A or B.

A cross-shaped electromagnet may be placed above a small digitalmagnetometer (such as Freescale MAG3110 device or other similar orequivalent device), and the crossed dipole may be moved by the userrelative to a small compass or other high sensitivity magnetic fieldsensor (e.g., digital magnetometer) device and sequential measurementsof the field of dipole A and then dipole B may be measured when currentis passed through each of these in sequence, thereby allowing thepositional displacement and tilt of the relative movement and tiltbetween the two components to be measured.

In some embodiments, springs may be used as suspension elements in anelectromagnetically configured magnetic UID. For example, three springs(or other numbers or shapes of springs) may be used to act as suspensionelements between the high sensitivity magnetic sensor (e.g., compasschip or magnetometer) and electromagnets (e.g., crossed dipoles). Thesprings may also be used as electrical circuit elements to providesignals to the electromagnets, such as to allow dipoles A and B to beseparately and controllably energized with current, such as may becontrolled by a processing element or other circuit component of themagnetic UID, to create instant magnetic dipoles that can be sensed by anearby multi-axis, (e.g., typically three axis) high sensitivitymagnetic sensor (such as a compass chip or magnetometer).

In some embodiments drive signaling may be applied selectively to eachof the dipole elements, for example, separately to dipole A and thendipole B (e.g., an electromagnet array comprising crossed dipoles A andB), to generate the magnetic fields for sensing. In addition, an “offstate” may be used, where no current is applied to either dipole. Forexample, dipole A may first be energized to create a magnetic field,such as by a square waveform, ramp or triangle waveform, half sinusoidalwaveform, or other appropriate waveform, and a measurement may be takenby the high sensitivity magnetic sensor (e.g., compass sensor ormagnetometer), and then dipole B may subsequently be energized in asimilar fashion to create a magnetic field and a second measurement maybe taken by the sensor. A reference ambient magnetic field value may betaken with both dipoles A and B in the “off state” so that the relativestrengths of the magnetic fields due to A and B alone may be determinedby differencing away the ambient field value. Other patterns, sequences,and/or drive waveforms may be used in various embodiments.

Such a miniature magnetic UID using electromagnets and high sensitivitymagnetic sensors may be advantageous for use in smart phones, notebookcomputers, tablet computers, or other similar small and/or thinelectronic devices. In an exemplary embodiment, a cross-shapedelectromagnet configuration with a single magnetic sensor may be builtupon a single central PCB, where the device may be pinched by a userfrom opposite sides between two fingers, thereby allowing six degrees ofmotion to be imparted to the device by a user using only two fingersgripping from opposite sides. Optionally if a second pair of dipolesand/or a second magnet sensor is added, a pinch-squeeze measurement mayalso be made. In such an embodiment, the outer two pinchable PCBs and/orsupports under the rubber covers might be optionally mechanically linkedso that they move as a single unit.

As noted previously, the electromagnets may include inductors surroundedby coil, such as coil-wrapped chip inductors. In some embodiments,deliberately saturating the inductors may be used to improve thereproducibility of the magnetic field over short time intervals.

FIG. 27 illustrates details of an embodiment of a process FIG. 2700 thatmay be used to process magnetically sensed signals in a magnetic UID,such as the magnetic UID embodiments described previously herein. Atstage 2710, a processing element may receive, during a movement ordeformation of an actuator element from the released state, sensor datafrom one or more magnetic sensor elements, such as from a two orthree-axis magnetic sensor. The sensor data may be in a plurality ofaxes of measurement, such as in three-axes of measurement, and may besufficient to determine motion of the actuator and/or associated magnetsin six degrees of freedom.

At stage 2720, the sensor data from the one or more magnetic sensorelements may be compared to a predefined magnetic field model todetermine an estimated position or deformation of the actuator elementfrom the reference state, such as by accessing a lookup table and/orsolving a closed form equation model. At stage 2730, an output signalmay be generated based on the estimated position or deformation of theactuator element from the reference state. The output signal may beformatted in a compatible format, such as USB or othercomputer-interface formats, to be provided to an electronic computingdevice from the magnetic UID. The predefined magnetic field model may beconfigured to relate positional information of the one or more magnetswith corresponding sensor information associated with the one or moremagnetic sensor elements, and may be stored in one or more memoryelements of the magnetic UID, such as in a memory device integral withor coupled to the processing element to allow direct access to thememory device.

The stage 2720 of comparing the sensor data from the one or moremagnetic sensor elements to a predefined magnetic field model mayinclude, for example, comparing the sensor data to values in one or morelookup tables to determine the estimated position or deformation. Thestage of comparing the sensor data may further include converting x andy dimension sensor measurements to an r-dimension measurement anddetermining the estimated position by accessing a lookup table includingB_(r) and z-dimension values. Alternately, or in addition, the stage2720 of comparing the sensor data from the one or more magnetic sensorelements to a predefined magnetic field model may include solving, basedon the sensor data, a closed form equation of the predefined magneticfield model to determine the estimated position or deformation. Theplurality of orthogonal axes of measurement may be three orthogonal axesof measurement.

The one or more magnets may be permanent magnets. Alternately, or inaddition, the one or more magnets may be electromagnets. The actuatorelement may include one or more movable elements. Alternately, or inaddition, the actuator element may include one or more deformableelements.

The output signal may include, for example, data defining the estimatedposition of the actuator element and/or of magnets in or associated withthe actuator element. The output signal may include data defining amotion of the actuator element. The output signal may include datadefining the deformation of the actuator element. The predefinedmagnetic field model may include one or more lookup tables relating thepositional information to the sensor information. The predefinedmagnetic field model may include a mathematic model, which may be aclosed form solution model, relating the position information to thesensor information. The reference position may be a released stateposition or may be another position related to or associated with thereleased state position, such as a position offset from the releasedstate position.

The reference position may be offset from a released state position, andthe method may further include, for example, determining the offset fromthe released position and adjusting the estimated position based on thedetermined offset. The offset may be a function of temperature and/orother physical or operational parameters, and the estimated position maybe adjusted responsive to a temperature measurement or determination ofthe other physical or operational parameters.

The process 2700 may further include, for example, a stage ofcompensating for unintended displacement of the manual actuator below apredetermined minimum threshold. The process may further include a stageof compensation for position of the magnetic user interface device usingone or more compass devices. The position of the magnetic user interfacedevice may be compensated by using a first compass on the magnetic userinterface device and a second compass on a display or monitor of acoupled electronic computing system.

The determining of the offset from the released position may include,for example, generating a center calibration prism including apredetermined set of boundaries of the magnetic field componentsdetected by each sensor, and repeatedly re-defining the centercalibration prism so as to auto-zero the released state position.

FIG. 28 illustrates details of an embodiment of a process FIG. 2800 thatmay be used to generate a predefined magnetic field model for use in amagnetic user interface device, such as the magnetic UID embodimentsdescribed herein. At stage 2810 a user interface device or element ofthe user interface device, such as an actuator or magnet assembly, maybe oriented in ones of a plurality of different positions. At stage2820, positional information may be determined and stored in a testsystem, such as a test computer, with the positional informationcorresponding to ones of the plurality of positions that are measured.At stage 2830, ones of a plurality of sensor data values may begenerated, such as from a magnetic sensor apparatus, and may be sent tothe test system, where they may be associated with the positionalinformation at stage 2840 and stored to generate the predefined magneticfield model. The predefined magnetic field model may then be loaded orburned into a memory of a magnetic UID for use during operation such asdescribed previously herein. In some embodiments, the positionalinformation and sensor data values may be associated and configured inthe form of a lookup table. Alternately, or in addition, the positionalinformation and sensor data values may be translated to a closed formmathematical model, such as a closed form approximation of the measuredsensor and position data, and then stored in the form of a closed-formequation which may be processed by a processing element of a magneticUID during operation.

In some embodiments, permanent magnets, such as described previouslyherein, may be replaced, in whole or in part, with electromagnets, suchas chip scale electromagnet devices (which may be configured, forexample, similar to small SMT inductors) or other small scaleelectromagnetic devices. A high sensitivity magnetic sensor device, suchas a magnetometer or compass sensor as described previously herein, maybe used with the electromagnet to build a compact user interface devicethat may be operable with a single multi-axis magnetic sensor, ratherthan multiple sensors as described previously herein. This approach maybe viewed as similar to a configuration where “permanent” magnets couldbe switched off and on, thereby allowing use of two different(electro)magnets with a single compact three axis sensor. Thisconfiguration may allow for a smaller, lower cost, single sensor userinterface device to be built compared to devices using multiple threeaxis sensors. In embodiments using electromagnets, a control circuit,such as an electronic circuit including logic elements and currentswitching elements such as transistors or other solid state switchingdevices, may be used to provide driving current to the electromagnets.The control circuit may be implemented in a separate circuit on orwithin the user interface device or may be incorporated, in whole or inpart, in a processing element of the user interface device. Outputcurrent and/or other signals may be coupled between the control circuitand electromagnets using conductive springs, wires, or other conductivecircuit elements.

In typical configurations using electromagnet dipole arrays, rather thanpermanent magnets, the relative instantaneous strength of the currentprovided through the dipole elements may be controlled in the controlcircuit to allow the associated magnetic field to be switched (in anyorder) such as by sequential or other switching schemes, to provideindependent measurements of the field strength and orientation so as toallow a unique positional solution of the relative position of themagnetic sensors and the dipole array. The solution may be done, forexample, as described previously herein with respect to permanent magnetconfigurations. The current through the dipoles may be controlled andswitched in a variety of ways to provide measurably distinct, separate,and independent magnetic fields at the sensor that are then sensed bythe sensor to provide sensor output signals to a processing element orother electronic component of the associated UID or other device. Thefields need not necessarily be perpendicular to be independent. In someembodiments the control circuit and associated switching may becoordinated with magnetic field sensing done by the magnetic sensorand/or signal processing performed in the processing element on sensedmagnetic field data.

Example applications for this type of compact device may includenotebook computers, smart phones, tablet devices, gaming devices,compact computing or electronics systems, or other devices or systemswhere small and/or thin user interface devices may be useful ordesirable. Since high sensitivity sensors such as compass sensors can bevery sensitive, a very low powered, small electromagnet array (e.g., across-shaped pair or other configuration of dipole electromagnets) maybe used in place of permanent magnets in some embodiments.

One potential advantage of such an implementation is that a dipole arrayincluding a pair of crossed dipoles (e.g., the energized electromagnets)that are energized in sequence or in combination may be used toeliminate the ambiguity associated with the movement around the axis ofsymmetry of a single dipole, and thereby allow a single three axissensor to be used while still allowing all six degrees of freedom (asdescribed previously herein) to be sensed. The configuration may beparticularly advantageous in size-limited or cost-sensitiveapplications.

Electromagnet UID embodiments may use similar elements and methods tothose described previously for permanent magnet implementations asdescribed subsequently herein. A primary difference is replacement ofthe small permanent magnets with small controllable electromagnets(e.g., dipoles), and addition of associated electromagnet drivercalibration, and/or compensation controls, and/or associated magneticsensor control functions, which may be implemented in a control circuit.Some example embodiments are illustrated subsequently.

For example, FIG. 29A illustrated details of one embodiment 2900 of suchan electromagnetic dipole array configuration. The cross-shapedelectromagnet array shown in FIGS. 29A-29C may use a small chip scale,wire wound surface mount (SMT) cross dipole inductor element that canproduce either magnetic dipole A or B when electric current is providedthrough wire windings A or B. This may be done through a switchingcircuit or other electronic control module, which may be controlled byor incorporated within a processing element of the UID in which thearray is being used.

As shown, array 2900 includes a support or substrate structure 2910,which may be a cross-shaped inductor ferrite as shown to allow fororthogonally configured dipoles. In this example, the dipoles areoriented in X and Y dimensions as shown. The substrate cross-section maybe square or rectangular as shown, such as to allow for use ofsquare-shaped board-level inductors or other magnetic components, or mayhave other shapes such as circular or oval, or other cross-sectionalshapes. Likewise, while an exemplary embodiment may use a cross-shape asshown, other shapes allowing for generation of orthogonal magneticfields may be used in various implementations.

In the example array 2900, two wire windings, windings 2920, and 2930,form dipoles A (2922) and B (2932), respectively, when energized. Thesedipoles may be alternately energized, such as by switching on and off asshown in FIG. 40, and/or in some embodiments may be energized jointly,at the same or varying phases and/or amplitudes, so as to generate ashaped magnetic field. In the example embodiment 2900, the four “prongs”of the cross-shaped ferrite substrate may have wire winding crossed-overat the center to connect the windings together as shown. In alternateconfigurations described subsequently, each prong may have a separatewinding (e.g., four windings on a cross-shaped substrate as shown) toallow separate or tandem energization of each dipole. Otherconfigurations may include alternate interconnection points and/orwiring configurations.

FIG. 29B illustrates a simplified example embodiment of the dipole arrayembodiment 2900 of FIG. 29A positioned above a multi-axis magneticsensor 2950, which may be, for example, a small digital magnetometer(such as Freescale MAG3110 device) or other similar or equivalentdevice. During user actuation, the crossed dipole array may be moved bythe user relative to the sensor 2950 (e.g., digital magnetometer) andmeasurements of the field of dipole A and then dipole B may be measured,such as sequentially or in some other sequence, when current is passedthrough each, thereby allowing the positional displacement and tilt ofthe relative movement and tilt between the two components to bemeasured. The array 2900 may be mechanically coupled via a couplingmechanism 2990, such as those described previously herein or other fixedor rigid coupling mechanisms, to a printed circuit board or other baseelement. This may be done by using a plurality of suspension springs2992, 2994, and 2996 (which may include more or fewer springs in variousembodiments). As described subsequently, the springs may also be used asconductors for providing driving currents and/or control or datasignals.

FIG. 29C illustrates additional details of use of dipole array 2900including an embodiment of a driving circuit for providing current tothe dipole array. In this configuration, the two dipoles A and B may becoupled to a common point at contact points 2938 and 2928 through spring2955, which may correspond with one of springs 2992, 2994, or 2996 asshown in FIG. 29B. The other connection point 2936 (of Dipole B) and2926 (of Dipole A) may be connected to separate driving circuitconnections through springs 2935 and 2925, respectively (which may beothers of springs 2992, 2994, and 2996), as shown. Although springs maybe used for electrical connection points in exemplary embodiments asshown, in other embodiments wiring or other conductive elements may beused to carry currents and/or other signals between the electromagneticarray and an associated power and/or control circuit.

Through use of the springs (as shown) or other conductive elements, acontrol circuit may provide signals to selectively drive theelectromagnets, such as to allow dipoles A and B to be separately andcontrollably energized with current to create instant magnetic dipolesthat can be sensed by a nearby three axis magnetic sensor (e.g.,magnetometer or compass sensor), such as sensor 2950 as shown in FIG.29B.

FIGS. 30A and 30B illustrate details of another embodiment of anelectromagnetic dipole array 3000. In this configuration, four dipoles,Dipole A (3020), Dipole B (3030), Dipole C (3040), and Dipole D (3050)are formed on a cross-shaped substrate 3010. This substrate may be thesame as or similar to the substrate 2910 as shown in FIG. 29A, such as aferrite cross or other cross-shaped element. Array 3000 may include acommon connection point 3014, which may be on a solder pad 3012 or otherconnection point on or within the substrate 3010. Corresponding windingsof each of the four dipoles may connect at one point to the commonconnection point 3014. The other ends of the windings may connect toleads at points 3022, 3032, 3042, and 3052, of Dipoles A, B, C, and D,respectively. These leads may be coupled to a driving circuit to controlswitching and/or common energization of the multiple dipole elements.

FIG. 30B illustrates details of one embodiment of a dipole array such asarray 3000 on a chip-scale ferrite core with solder pads at the end ofeach prong of the core as well as in the center. Wire windings on eachprong are coupled to the common center pad as well as to the outer pads.

FIGS. 31A and 31B illustrate details of another embodiment of anelectromagnetic dipole array 3100. In this configuration, four dipoles,Dipole A (3120), Dipole B (3130), Dipole C (3140), and Dipole D (3150)are formed on separate ferrite cores 3128, 3138, 3148, and 3158, withwiring from each Dipole coupled at one end to a center substrate 3110via connections 3124, 3134, 3144, and 3154. The connections may meet ata common point on substrate 3110 or may each include a separateconnection to control circuitry. The other ends of dipole wiring may becoupled to connections 3122, 3132, 3142, and 3152 as shown, with eachconnection point being controllable separately or in some cases jointlyor in tandem. FIG. 31B illustrates an example embodiment of anelectromagnetic dipole array 3100 using chip-scale components andassociated wiring.

Various other dipole array configurations may be used in alternateembodiments to provide dipole elements in two or more dimensions oraxes. For example, FIG. 32 illustrates another embodiment of a dipolearray 3200 having an additional dipole (relative to array 2900) in theZ-axis. In this configuration, which may be implemented similarly toarray 2900, an additional Z-axis structure may be added to formsubstrate 3210. Dipoles A (3220) and B (3230) may be formed similarly tothose shown in FIG. 29, with connection points 3224 and 3226 for DipoleA and 3232 and 3234 for Dipole B. In addition, another winding onsubstrate 3210 in the Z-axis (as shown) may form Dipole C, withconnection points 3242 and 3244. Various connection point configurationsmay be used, such as by sharing a common connection point as shown inFIG. 29C (with addition of a connection for Dipole C, e.g., connectionpoint 3244). A configuration such as dipole array 3200 may include anadditional spring if suspension springs are also used as conductors,and/or may include other connections, such as through wires or otherconductors.

Dipole elements of the dipole array may be used to generate magneticfields to provide independent field measurements centered or nearlycentered on a single location, though in principle the dipoles really donot have to be collocated, and thereby make the device smaller and morecompact and require the use of fewer magnetic field sensors. Inaddition, in some embodiments ambient magnetic fields may be measured(e.g., by using a single multi-axis sensor or, in certain configurationswhere multiple sensors are used, those multiple sensors) to determinethe ambient conditions and then adjust the output of the dipole arrayelements to compensate. In addition, in some embodiments, an ambientmagnetic signal may be measured, then a nominal driven magnetic field(e.g., equal current in each dipole) may be measured, and then thedipole array may be adjusted to generate an adjusted driving signal tocompensate for the ambient magnetic field.

FIG. 33 illustrates another embodiment of a dipole array with a Z-axisdipole element 3340 formed on substrate 3310. This array may beconfigured similarly to array 3000 of FIG. 30, but with the addition ofDipole C. For example, Dipole A (3320) may include connection points3322 and 3324, Dipole B (3330) may include connection points 3332 and3344, Dipole C (3340) may include connection points 3342 and 3344,Dipole D (3350) may include connection points 3352 and 3354, and DipoleE (3362) may include connection points 3362 and 3364. In someembodiments one end of each dipole winding may be connected to a commonpoint (e.g., connection points 3324, 3334, 3344, 3354, and/or 3364),with the other ends of each winding separately controlled or controlledin pairs or in tandem). Alternately, each dipole may be coupled to aseparate driving and/or control circuit.

FIG. 34 illustrates another embodiment of a dipole array with a Z-axisdipole element 3440 formed on substrate 3410. This array may beconfigured similarly to array 2900 of FIG. 29, but with the addition ofDipole C along both prongs in the Z-axis. For example, Dipole A (3420)may extend the entire length of the substrate along the X axis, Dipole B(3430) may extend the entire length of the substrate along the Y axis,and Dipole C (3440) may extend the entire length along the Z axis asshown. The ends of each winding of the dipoles may be connected in acommon point configuration as described previously or each may beseparately connected to a driving/control circuit.

Yet another embodiment of a dipole array embodiment 3500 with a Z-axisconfiguration is shown in FIG. 35. This dipole array may be configuredsimilarly to the array 3300 of FIG. 33 but with the addition of a seconddipole 3570 along the Z-axis. For example, Dipole A (3520) may extendalong one prong of substrate 3510, with Dipole D (3550) along theopposite prong in the X-axis. Dipole B (3530) may extend along one prongon the Y-axis with Dipole E (3560) along the opposite prong. Along theZ-axis Dipole C (3540) may extend along one prong and Dipole F (3570)along the opposite prong. The dipoles may be connected at or to a commonpoint, with the other ends of each winding separately controlled orcontrolled in pairs or in tandem. Alternately, each dipole may becoupled to a separate driving and/or control circuit. In thisconfiguration, Dipoles A and D would typically be energized and drivenin tandem to produce a single dipole field centered at or near where thethree axes intersect. Similarly Dipoles B and E, and Dipoles C & F,would typically be energized and driven in tandem. However, in someembodiments each element may be driven separately to achieve a desiredmagnetic field structure, such as to compensate for ambient fields orother distortions.

FIGS. 36A and 36B illustrate details of another embodiment 3600 of anelectromagnetic dipole array. This embodiment may be implemented usingchip-scale inductor or other substrate components with windings disposedthereon and stacked in a pyramid-like configuration on a circuit boardor other base structure. For example, as shown in FIG. 36A, three chipinductors, 3622, 3624, and 3626, form a dipole array substrate or form3610. These may soldered together at solder pad at the top ends(relative to the substrate 3620) of the inductors, and each may besoldered at the other end to pads on the substrate 3620. This structuremay then be positioned in proximity to a magnetic sensor element 3650,which may be a magnetometer or compass sensor as described previouslyherein, or other multi-axis magnetic sensing element. FIG. 36Billustrates windings 3623, 3625, and 3627, on inductors 3622, 3624, and3626, respectively. These form Dipoles A-C as shown.

FIGS. 37A and 37B illustrate details of movement of an electromagneticdipole array 3710 which may correspond to any of the previouslydescribed dipole array embodiments. In FIG. 37A, the array 3710 is in aneutral or released position 3700A in the user interface device (UID),such as when a user is not in physical contact with the associatedmagnetic UID or is in contact but is not actuating the UID. In thisposition springs, such as springs 3722, 3724, and 3726 are in theirnominal or released-state position and the array 3710 is positioned andrestrained in a neutral or released position relative to the multi-axismagnetic sensor 3750, which may be a magnetometer or compass sensor orother magnetic sensor element. A connection 3712, which may includemultiple wires or other conductors may provide drive and/or controlsignaling to the array 3710, alternately, or in addition, springs 3722,3724, 3726, and/or other springs (not shown) may be used as electricalconductors to provide power and/or control signaling to the array 3710.The sensor 3750 may be disposed on a substrate 3720, such as a PCB orother base element. Additional mechanical coupling (not shown) may beused to couple the array 3710 to the springs. For example, the dipolearray, springs, and substrate may be configured similarly to themagnetic UID configurations described previously herein. In thisreleased state, magnetic fields generated by the dipole array may besensed by the sensor 3750 and may be stored as a released or referenceposition and/or may signal a coupled computer or other device of thecurrent actuation state of the UID.

FIG. 37B illustrates the UID of FIG. 37A in a user-actuated position3700B. In this position, the dipole array 3710 has moved (as shown inthe example movement) in response to user actuation, and the springs arecompressed and/or expanded as shown in response. Magnetic fieldsgenerated by dipole array 3710 in this position will be sensed by sensor3750 and, due to the movement of the dipole array 3710, will bedifferent than in the released state. The differences in the magneticfield may then be used to determine a corresponding position of theactuator of the UID.

FIG. 38 illustrates details of an embodiment of a miniature magnet UID3800 suitable for use in a smart phone, tablet computer, or other smalldevice or system. This example device illustrates use of anelectromagnet configuration built upon a single central substrate 3822,in the form of a PCB, where the device may be pinched by a user fromopposite sides between two fingers, thereby allowing six degrees ofmotion to be imparted to the device by a user using only two fingersgripping from opposite sides. Dipole array 3810 and associated sensor3850 may be used to sense the pinching action. Optionally a seconddipole array and/or a second magnet sensor may be added (as shown), inwhich case a pinch-squeeze measurement may also be made. In such anembodiment, the outer two pinchable PCBs and/or supports under therubber covers 3826 may be optionally mechanically linked so that theymove as a single unit. Springs 3824 may be used to mechanically couplethe dipole array(s) to the substrate 3822 as shown.

FIG. 39 illustrates details 3900 of an embodiment of a dipole arrayincluding four dipole elements, Dipole A (3920), Dipole B (3930), DipoleC (3940), and Dipole D (3950). In this configuration, the associatedmagnetic field 3980 may be selectively shaped by controlling themagnitude and/or phase of the driving signals applied to each dipoleeither separately or in tandem. For example, the ambient magnetic fieldmay be initially sensed without any driving current applied to thedipoles. This information may then be used to generate a driving signalto compensate for distortions associated with the ambient magnetic fieldby shaping the driven magnetic field.

FIG. 40 illustrates details of an embodiment of drive signaling 4000that may be applied to the electromagnets to generate magnetic fieldsfor sensing. An example of one embodiment of drive current flow as afunction of time, t, through an electromagnet array (e.g., theelectromagnet array comprising dipoles A and B of a dipole array asdescribed previously) is shown. Other configurations with more dipoleelements (e.g., Dipoles C-F as described previously) may be driven withsimilar signaling.

In the example drive embodiment of FIG. 40, Dipole A may first beenergized during time interval T1 to create a magnetic field, and ameasurement may be taken by the magnetic sensor (e.g., magnetometer orcompass sensor), then Dipole B may subsequently be energized during timeinterval T2 to create a magnetic field and a second measurement may betaken by the sensor. A reference ambient magnetic field value may thenbe taken during time interval T3 with both dipoles A and B OFF so thatthe relative strengths of the magnetic fields due to A and B alone maybe determined by differencing away the ambient field value. Otherpatterns, sequences, and/or drive waveforms may be used in variousembodiments.

In the example sequence shown, Dipole A may be switched on and acorresponding three-axis magnetic field measurement may be taken by amagnetic field sensor to determine the field produced by inductor #1,Dipole B may then be switched on and another three-axis measurementtaken to determine the field produced by inductor #2, then both may beswitched on (or both off) and a third 3-axis magnetic field measurementmay be made to determine an ambient magnetic field.

As noted previously, the electromagnets may include variousconfigurations of substrates and windings, such as chip or otherinductors surrounded by coil, such as coil-wrapped chip inductor. Insome embodiments, deliberately saturating the inductors may be used toimprove the reproducibility of the magnetic field over short timeintervals.

While a number of different embodiments of methods and systems forimplementing magnetic user interface device functionality withelectromagnets are described herein, others are also apparent to one ofskill in the art. For example, an initial calibration of the manual userinterface device may be used to compensate for errors in positioning ofthe electromagnets and magnetic sensors due to manufacturing tolerancesor other changes or offsets. Similarly, an iterative error reductionalgorithm or other techniques may be used to compensate for the same.Furthermore a capacitive or other independent means may be used todetermine when the manual user interface device has been touched by auser and thereby determine a center point for the manual user interfacedevice in a released state at that time rather than the centercalibration prism and auto-zeroing methods of FIGS. 16A and 16B.

In some configurations, the methods, apparatus, or systems describedherein may include or describe means for implementing features orproviding functions described herein. In one aspect, the aforementionedmeans may be a module including a processor or processors, associatedmemory and/or other electronics in which embodiments of the inventionreside, such as to implement magnetic sensor signal processing andposition determination or other functions related to magnetic sensorsand sensing applications, or to provide other electronic or computerprocessing functions described herein. These may be, for example,modules or apparatus residing in magnet user interface devices,computers, such as laptop, notebook, desktop, tablet, or other computingdevices, smart phones, or other electronic equipment, systems, ordevices.

In one or more exemplary embodiments, the various functions, methods,and processes described herein for use with user interface devices andassociated electronic computing systems may be implemented in hardware,software, firmware, or any combination thereof. If implemented insoftware, the functions may be stored on or encoded as one or moreinstructions or code on a non-transitory computer-readable medium.

Computer-readable media includes computer storage media. Storage mediamay be any available media that can be accessed by a computer,microcontroller, microprocessor, DSP, FPGA, ASIC, or other programmabledevice. By way of example, and not limitation, such computer-readablemedia can comprise RAM, ROM, EEPROM, FLASH, CD-ROM or other optical diskstorage, magnetic disk storage or other magnetic storage devices, or anyother medium that can be used to carry or store desired program code inthe form of instructions or data structures and that can be accessed bya computer. Disk and disc, as used herein, includes compact disc (CD),laser disc, optical disc, digital versatile disc (DVD), floppy disk andblu-ray disc where disks usually reproduce data magnetically, whilediscs reproduce data optically with lasers. Combinations of the aboveare also be included within the scope of computer-readable media.

As used herein, computer program products comprising computer-readablemedia include all forms of computer-readable medium except, to theextent that such media is deemed to be non-statutory, transitorypropagating signals. Computer program products may include instructionsfor causing a processing element or module, such as a microcontroller,microprocessor, DSP, ASIC, FPGA, or other programmable devices andassociated memory to execute all of some of the stages of processes suchas those described herein.

It is understood that the specific order or hierarchy of steps or stagesin the processes and methods described herein are examples of exemplaryapproaches. Based upon design preferences, it is understood that thespecific order or hierarchy of steps in the processes may be rearranged,added to, deleted from, and/or amended while remaining within the spiritand scope of the present disclosure.

Those of skill in the art would understand that information and signals,such as video and/or audio signals or data, control signals, or othersignals or data may be represented using any of a variety of differenttechnologies and techniques. For example, data, instructions, commands,information, signals, bits, symbols, and chips that may be referencedthroughout the above description may be represented by voltages,currents, electromagnetic waves, magnetic fields or particles, opticalfields or particles, or any combination thereof.

Those of skill would further appreciate that the various illustrativelogical blocks, modules, circuits, elements, and algorithm stepsdescribed in connection with the embodiments disclosed herein may beimplemented as electronic hardware, computer software,electro-mechanical components, or combinations thereof. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure.

The various illustrative functions and circuits described in connectionwith the embodiments disclosed herein with respect to magnetic userinterface devices be implemented or performed with a general purposeprocessor, a digital signal processor (DSP), an application specificintegrated circuit (ASIC), a field programmable gate array (FPGA) orother programmable logic device, discrete gate or transistor logic,discrete hardware components, or any combination thereof designed toperform the functions described herein. A general purpose processor maybe a microprocessor, but in the alternative, the processor may be anyconventional processor, controller, microcontroller, or state machine. Aprocessor may also be implemented as a combination of computing devices,e.g., a combination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration.

The steps or stages of a method, process or algorithm described inconnection with the embodiments disclosed herein may be embodieddirectly in hardware, in a software module executed by a processor, orin a combination of the two. A software module may reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, harddisk, a removable disk, a CD-ROM, or any other form of storage mediumknown in the art. An exemplary storage medium is coupled to theprocessor such that the processor can read information from, and writeinformation to, the storage medium. In the alternative, the storagemedium may be integral to the processor. The processor and the storagemedium may reside in an ASIC. The ASIC may reside in a user terminal. Inthe alternative, the processor and the storage medium may reside asdiscrete components in a magnetic user interface device, computer, orother electronic system or electronic computing device.

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentdisclosure. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the disclosure. Thus, the present disclosure is notintended to be limited to the embodiments shown herein but is to beaccorded the widest scope consistent with the principles and novelfeatures disclosed herein.

The disclosure is not intended to be limited to the aspects shownherein, but is to be accorded the full scope consistent with thespecification and drawings, wherein reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. A phrase referring to“at least one of” a list of items refers to any combination of thoseitems, including single members. As an example, “at least one of: a, b,or c” is intended to cover: a; b; c; a and b; a and c; b and c; and a, band c. Various modifications to these aspects will be readily apparentto those skilled in the art, and the generic principles defined hereinmay be applied to other aspects without departing from the spirit orscope of the disclosure. Thus, the disclosure is not intended to belimited to the aspects shown herein but is to be accorded the widestscope consistent with the appended claims and their equivalents.

We claim:
 1. A user interface device, comprising: an actuator elementhaving a plurality of magnets; a plurality of three-axis magnetic sensorelements, each associated with a corresponding magnet amongst theplurality of magnets, to sense the magnetic field components associatedwith displacements of the corresponding magnets in three orthogonal axesand provide magnetic sensor output data corresponding to the sensedmagnetic field components; a processing element communicatively coupledto the three-axis magnetic sensor elements to determine, based at leaston the magnetic sensor output data, an estimated position or deformationof the actuator element from a released state; and a memory to store apredefined magnetic field model, wherein the determined estimatedposition or deformation of the actuator element from the released stateis further based on the predefined magnetic field model.
 2. The deviceof claim 1, wherein the plurality of magnets comprises cross-shapedelectromagnets having a pair of dipole elements on orthogonal prongs ofthe cross shape.
 3. The device of claim 1, wherein the predefinedmagnetic field model is a closed form equation.
 4. The device of claim1, wherein the output signal includes data defining the estimatedposition of the actuator element relative to the released state.
 5. Auser interface device, comprising: an actuator element having aplurality of magnets; a plurality of three-axis magnetic sensorelements, each associated with a corresponding magnet amongst theplurality of magnets, to sense the magnetic field components associatedwith displacements of the corresponding magnets in three orthogonal axesand provide magnetic sensor output data corresponding to the sensedmagnetic field components; and a processing element communicativelycoupled to the three-axis magnetic sensor elements to determine, basedat least on the magnetic sensor output data, an estimated position ordeformation of the actuator element from a released state; wherein theoutput signal is further based upon a reference position determined asan offset from the released position.
 6. The device of claim 5, whereinthe offset is a function of temperature and the estimated position isadjusted responsive to a temperature measurement.
 7. The device of claim1, wherein the determined estimated position or deformation of theactuator element from the released state is provided as an output signalto an electronic device coupled to the user interface device.
 8. Thedevice of claim 1, wherein the plurality of three-axis magnetic sensorelements include four three-axis magnetic sensor elements and theplurality of magnets include four magnets, each corresponding to one ofthe plurality of three-axis magnetic sensor elements.
 9. The device ofclaim 1, wherein the plurality of magnets include one or morecylindrical magnets.
 10. The device of claim 1, further comprising abase and a plurality of springs disposed between the base and theactuator element.
 11. A user interface device, comprising: an actuatorelement having a plurality of magnets; a plurality of three-axismagnetic sensor elements, each associated with a corresponding magnetamongst the plurality of magnets, to sense the magnetic field componentsassociated with displacements of the corresponding magnets in threeorthogonal axes and provide magnetic sensor output data corresponding tothe sensed magnetic field components; a base and a plurality of springsdisposed between the base and the actuator element; a processing elementcommunicatively coupled to the three-axis magnetic sensor elements todetermine, based at least on the magnetic sensor output data, anestimated position or deformation of the actuator element from areleased state; and a limiting component to limit movement of theactuator element relative to the base.
 12. A user interface device,comprising: an actuator element having a plurality of magnets; aplurality of three-axis magnetic sensor elements, each associated with acorresponding magnet amongst the plurality of magnets, to sense themagnetic field components associated with displacements of thecorresponding magnets in three orthogonal axes and provide magneticsensor output data corresponding to the sensed magnetic fieldcomponents; a processing element communicatively coupled to thethree-axis magnetic sensor elements to determine, based at least on themagnetic sensor output data, an estimated position or deformation of theactuator element from a released state; and a plurality of switchesdisposed in the actuator element and an elastomeric cover includingswitch bumps corresponding to ones the plurality of switches disposedover the actuator element.
 13. The device of claim 12, wherein one ormore of the plurality of switches are electro-mechanical switches. 14.The device of claim 12, wherein one or more of the plurality of switchesare pressure sensitive variable resistance switching devices.